
Ketil Malde wrote:
Chris Kuklewicz
writes: Is Jan-Willem Maessen's Hash available anywhere? I could benchmark it.
Did you ever get around to run the benchmark? I browsed around a bit, and found that the knucleotide is probably the worst GHC benchmark in the shootout (even TCL beats GHC by a factor of two!) - which is disheartening, because I rely a lot on associative data structures (usually Data.Map) in my programs.
Or have Adrian Hey's AVL-trees been tried?
-k
No, I did not try it. This message from Simon Marlow
Jan-Willem's HashTable attached. It uses unsafeThaw/unsafeFreeze tricks to avoid the GC overheads, for this you need an up to date GHC due to a bug in the garbage collector: grab a STABLE snapshot (6.4.1 won't work). Or remove the unsafeThaw/unsafeFreeze to use it with 6.4.1, and be prepared to bump the heap size.
In GHC 6.6 the unsafeThaw/unsafeFreeze tricks aren't required, because the GC is essentially doing it for you - we put a write barrier in the IOArray implementation.
indicates that it triggers a bug in 6.4.1, which is what the shootout is using. And I suspected bumping the heap size just won't cut it for the amount of data we are processing. But I did not test that suspicion. We never pounded on Data.Map, but I suspect it cannot be as bad as Data.Hashtable. -- Chris