Reducing the cost of garbage collecting small arrays

Jan-Willem Maessen jmaessen at
Thu Jun 23 00:31:50 CEST 2011

On Wed, Jun 22, 2011 at 12:33 PM, Johan Tibell <johan.tibell at> wrote:
> Hi,
> Now when we can efficiently copy small arrays I've gone back to
> benchmarking/optimizing my hash array mapped trie data structure. The
> data structure's performance depends on how efficiently we can
> allocate/collect/copy Array#s and MutableArrays#s of size <=32.
> Speeding up copying helped quite a bit, but the HAMT is still slower
> than a Patricia tree for inserts.

Is 5 the optimal number of bits to slice off at a time (ie the best
fanout)?  It sounds like node copy cost on insert argues for a
slightly narrower fanout.  You'll be evacuating / scanning more words
total, but new nodes may equate to less scanning overall (especially
if this is running long enough to have some nodes get tenure).


More information about the Glasgow-haskell-users mailing list