Mantis - Squeak
Viewing Issue Advanced Details
1382 System minor always 06-28-05 00:59 08-24-05 13:04
chris  
 
normal  
closed 3.8  
fixed  
none    
none 3.9  
0001382: 3.8 performance regression - ByteSymbol>>#hash
Magma's peak commit rate in 3.8 dropped from 24 per second in 3.7 to 18 per second in 3.8. I traced the cause of this problem to ByteSymbol>>#hash. Because of the new String hierarchy to support Multi-byte Strings, it is no longer benefitting from the primitive for calculating its hash that used to be in String>>#stringHash:initialHash:. It was moved to ByteString but not to ByteSymbol so now, ByteSymbol is inheriting the slow one from String which, per the comment, works for WideStrings too.

This fix simply restores the method with the primitive call that regular [Byte]Symbols have always benefitted from.
 ByteSymbol class-stringHashinitialHash.st [^] (738 bytes) 06-28-05 00:59
 SymbolPrims-ar.1.cs [^] (1,067 bytes) 08-19-05 00:00

Notes
(0001742)
MarcusDenker   
07-12-05 19:46   
fix is attached
(0001743)
MarcusDenker   
07-12-05 19:47   
commited to 3.9a repository
(0002425)
andreas   
08-18-05 23:59   
Reopened. The proposed fix is a needless duplication of code and only address one out of the four primitives affected. Attached is a change set that simply delegates all four primitives from ByteSymbol to ByteString therefore leaving the implementation in a single place.
(0002495)
chris   
08-23-05 04:48   
Thanks Andreas.
(0002496)
chris   
08-23-05 04:52   
Thanks Andreas..
(0002520)
MarcusDenker   
08-24-05 13:01   
added to 3.9