On Mon, 2 Apr 2012, Martin Stjernholm, Roxen IS @ Pike developers forum wrote:
I take it you already got it working as a replacement for the old BLOCK_ALLOC, including that quirky heap walker that the old one sports? Do you have any test where they are compared?
The heapwalkers basically work the same way. The order the pages are walked is different. Otherwise, they both use magic values to distinguish free from used blocks. For that there is a new macro called WALK_NONFREEB_BLOCKS for both the old and the new allocator.
/.../ Currently, GJAlloc is requested as a bundle by the CritBit module, which uses its API directly.
Does it add any features?
Not really. The reason we started this initially was because the current block allocator was actually slower than malloc for critbit trees in our random tests.
All other modules use macro definitions which are compatible with the ones from block_allocator.h.
You mean the old block_alloc.h?
yes, right.