Hashtables: 'Basic' hashtables performance quirks on Win64
kyrab at mail.ru
Sat Jan 18 09:38:34 UTC 2014
Having built Agda on 64-bit GHC 7.6.3 on Windows I've stumbled on Agda
being unbearable slow (I tried it on Penryn and Sandy Bridge computers).
The culprit turned out to be Agda uses 'BasicHashTable' in
src/full/Agda/TypeChecking/Serialise.hs (line 98).
Switching either to Cuckoo or Linear immediately cures the problem.
The problem does not manifest itself on 32-bit Windows build or any
Also 'Basic' hashtable perform better than Cuckoo and Linear in standard
benchmarks on Win64. And at the same time in Agda scenario it's
performance degrades by a *couple of orders of magnitude*!
Thus, *all* things are important here: 64-bit, Windows, Agda use case.
I wonder what stands behind this behaviour? What are specifics of
'Basic' hashtable implementation and how to fix this or should this be
fixed at all?
More information about the Libraries