stringCompare performance

Tim Olson tim at
Wed May 6 13:15:40 UTC 1998

>I've looked at the performance data at
>and it is very strange to see that Squeak has performance that is two
>orders of magnitude worse than all the other systems for stringCompare.
>Any idea why?

The stringCompareTest there is comparing the equality of two long, 
literal strings (which are equal).  In most Smalltalk implementations, 
the compiler recognizes that the literal strings are the same, and uses a 
single literal for both of them.  This means that not only are the 
strings #=, they are also #==.

I suspect that the other "fast" Smalltalk implementations have an 
early-out test for #== strings in the #= method, whereas Squeak's 
Collection>>= method does not.

One could easily change Squeak's #= method to include this, but I think 
it would be good to change the benchmark slightly so that actual 
character comparisons are being performed (by, say, making some of the 
string comparisons unequal in the last characters).

     -- tim

More information about the Squeak-dev mailing list