Wonderful! I think I can contribute a different kind of brain surgery, I'll try to hack that together in a bit. Martin McClure wrote:
OK, here's a filein that improves Pharo hashed collection performance quite a bit. Large collections are much faster, and small ones are pretty much the same speed as before. There are basically two fairly simple changes; the basic structure and algorithms of the collections is unchanged. The changes:
1. Spread identity hash values. 2. Make table sizes prime.
File it into PharoCore-1.0-10491rc1.image. It'll take a minute or two since it has to rehash the world halfway through. I don't know how to make another kind of packaging that can do that, so I'll leave that to someone else.
After the filein, there are some test failures, most of which do not seem to be *directly* related. I'm hoping someone that knows the affected tests can take a look and comment:
Unexpectedly pass ObjectFinalizerTests>>#testFinalizationOfEquals Not clear why, but this does not seem to be a problem :-)
Fails HostWindowTests>>#testOne But this test fails in the core image on Linux; HostWindows do not seem to be implemented for Linux.
Error on FontTest>>#testMultistringFont Japanese StrikeFonts have nil characterToGlyphMap, #createCharacterToGlyphMap answers nil, not immediately clear how this is supposed to be initialized for fonts with codepoints > 255.
PackageInfoTest>>testKernelPackage because some method in kernel package for Object is not in Object. I've changed #hash, so that's probably it.
Regards,
-Martin