[Haskell-cafe] Boxed Mutable Arrays

Serguey Zefirov sergueyz at gmail.com
Tue Dec 15 13:07:33 EST 2009


>>> now i see what you mean. no, i mean trivial transformation. #650 says
>>> about slow GC. why it's slow? because once you made any update to the
>>> array, the entire array is marked as updated and scanned on next minor GC
>>> (which occurs after every 512 kbytes allocated, afaik). let's replace
>>> big array (say, of 10,000 elements) with array of 100 arrays of 100
>>> elements each. now, between minor GCs only some of arrays will be
>>> changed and entire amount of memory to be scanned will become less
>> Data.IntMap?
> I want to implement a more-or-less traditional, mutable, imperative
> hash table in the ST monad.  Hence, I'm not considering Data.IntMap
> and other persistent tree structures for its implementation, although
> I have thought about it.
> The bug described in Ticket #650, AFAICS, prevents implementation of a
> reasonable, generic hash table in Haskell.  :-(

Data.IntMap is just a limit of what Bulat suggested.

So what was you thoughts about Data.IntMap in mutable hashmap?


More information about the Haskell-Cafe mailing list