Channels ▼

Policy-Based Memory Allocation

December, 2005: Policy-Based Memory Allocation

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

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.