Heap Layers

[Heap Layers]
Heap Layers is a template-based infrastructure for building high-quality, fast memory allocators. The infrastructure is remarkably flexible, and the resulting memory allocators are as fast or faster than counterparts written in conventional C or C++. We have built several industrial-strength allocators using Heap Layers, including Hoard (which now includes the Heap Layers infrastructure) and DieHard.

Press & Publications

Policy-Based Memory Allocation by Andrei Alexandrescu, from the C/C++ Users Journal, December 2005.

OOPSLA 2002:
Reconsidering Custom Memory Allocation
with Ben Zorn & Kathryn McKinley
Finds that a good general-purpose allocator is better than all custom allocators except regions, but these have serious problems. Introduces reaps (regions + heaps), which combine the flexibility and space efficiency of heaps with the performance of regions. Talk (PowerPoint).

PLDI 2001: Composing High-Performance Memory Allocators
with Ben Zorn & Kathryn McKinley
Introduces Heap Layers, a flexible infrastructure for building memory allocators that leverages C++ template mixins to achieve high performance.Talk (PowerPoint).

Publications using Heap Layers

PLDI 2006: Cache-conscious coallocation of hot data streams
Trishul Chilimbi and Ran Shaham

EuroSys 2008: Samurai: protecting critical data in unsafe languages
Karthik Pattabiraman, Vinod Grover, Ben Zorn