Skip to content
  • Simon Marlow's avatar
    [project @ 2005-06-13 12:29:48 by simonmar] · b07f3876
    Simon Marlow authored
    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.
    b07f3876