If it was not clear, before CRC32, almost 50% of share-string time was spent in the hash function. But it was still a very small percentage of the total CPU time used.
I optimized it because it was easy to do, mostly.
We spend significantly more time looking up identifiers in objects, as an example, so if you want to optimize pike make this code not call so many slow C-functions:
class foo { int cnt; void test() { for( cnt=0; cnt<1000000; cnt++ ); } }
void main() { foo()->test(); }
-- Per Hedbor