On 13 June 2005 13:30, Simon Marlow wrote:
> simonmar 2005/06/13 05:29:49 PDT
>
> Modified files:
> ghc/includes Block.h
> ghc/rts BlockAlloc.c FrontPanel.c
> RetainerProfile.c
> Log:
> Block allocator performance fix: instead of keeping the free list
> ordered, keep it doubly-linked, and introduce a new flag BF_FREE so
> we can tell when a block is free. We can still coalesce blocks on
> the free list because block descriptors are kept consecutively in
> memory, so we can tell based on the BF_FREE flag whether to
> coalesce with the next higher/lower blocks when freeing a block.
>
> This (almost) make freeChain O(n) rather than O(n^2), and has been
> reported to help a lot when dealing with very large heaps.
Forgot to mention: the patch is from Andy Cheadle <[EMAIL PROTECTED]>,
with some modifications by me.
Cheers,
Simon
_______________________________________________
Cvs-ghc mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-ghc