Actually a lot of string stuff is just calling into C, and can be as fast a C (and often is).
Re:Deep Dive into PHP 8's JIT
by jashmatthews on Sunday August 30, 2020 @07:04AM
(#24322624)
Just calling into C doesn't give the performance you’re after a lot of the time. The compiler needs to be aware of the properties of strings. Usually they're implemented as either dedicated opcodes or intrinsics. You can see the simple ones in LuaJIT here https://github.com/LuaJIT/LuaJIT/blob/ff1e72acead01df7d8ed0f...
So if a Python JIT does 10-50x better than CPython on a numeric workload, that sounds impressive, but it's still slow compared to C.
And again they don't get 10-50x on string/hash/method call workloads. I think they're lucky to get 2x in some of those cases.