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

Reply via email to