Heap Layers
![[Heap Layers]](http://www.cs.umass.edu/~emery/HeapLayers-logo.jpg)
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