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.
  
  Revision  Changes    Path
  1.21      +2 -0      fptools/ghc/includes/Block.h
  1.22      +99 -56    fptools/ghc/rts/BlockAlloc.c
  1.12      +1 -1      fptools/ghc/rts/FrontPanel.c
  1.23      +1 -1      fptools/ghc/rts/RetainerProfile.c
_______________________________________________
Cvs-ghc mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to