Table 1: Part of the HeapLayers library, divided by category.
Top Heaps | ||
mallocHeap | A thin layer over malloc | |
mmapHeap | A thin layer over the virtual memory manager | |
sbrkHeap | A thin layer over sbrk (contiguous memory) Building-Block Heaps | |
AdaptHeap | Adapts data structures for use as a heap | |
BoundedFreelistHeap | A free list with a bound on length | |
ChunkHeap | Manages memory in chunks of a given size | |
CoalesceHeap | Performs coalescing and splitting | |
FreelistHeap | A free list (caches freed objects) | |
Combining Heaps | ||
HybridHeap | Uses one heap for small objects and another for large objects | |
SegHeap | A general segregated fits allocator | |
StrictSegHeap | A strict segregated fits allocator | |
Utility Layers | ||
ANSIWrapper | Provides ANSI-malloc compliance | |
DebugHeap | Checks for a variety of allocation errors | |
LockedHeap | Code-locks a heap for thread safety | |
PerClassHeap | Uses a heap as a per-class allocator | |
PHOThreadHeap | A private heaps with ownership allocator [5] | |
ProfileHeap | Collects and outputs fragmentation statistics | |
ThreadHeap | A pure private heaps allocator [5] | |
ExceptionHeap | Throws an exception when the parent heap is out of memory | |
TraceHeap | Outputs a trace of allocations | |
UniqueHeap | A heap type that refers to one heap object | |
Object Representation | ||
CoalesceableHeap | Provides support for coalescing | |
SizeHeap | Records object sizes in a header | |
Special-Purpose Heaps | ||
ObstackHeap | A heap optimized for stack-like behavior and fast resizing | |
ZoneHeap | A zone ("region") allocator | |
XallocHeap | A heap optimized for stack-like behavior | |
General-Purpose Heaps | ||
KingsleyHeap | Fast but high fragmentation | |
LeaHeap | Not quite as fast but low fragmentation |