Why did replacing Arc<String> with Arc<str> decrease my performance by 10-150%?

135 points sharddblade

So I've been working on making my cel-rust library thread safe. Heap allocated types are all reference counted in the interpreter, so I simply switched them to from Rcs to Arcs. After thinking more about it, it made more sense (I thought) to switch them from Arc<String> to Arc<str> instead, but interestingly nearly all of my criterion benchmarks regressed by 10-150% just from switching from String to str.

Here's the PR with my changes, am I missing something?