Composing high-performance memory allocators

@inproceedings{Berger2001ComposingHM,
  title={Composing high-performance memory allocators},
  author={E. Berger and B. Zorn and K. McKinley},
  booktitle={PLDI '01},
  year={2001}
}
Current general-purpose memory allocators do not provide sufficient speed or flexibility for modern high-performance applications. Highly-tuned general purpose allocators have per-operation costs around one hundred cycles, while the cost of an operation in a custom memory allocator can be just a handful of cycles. To achieve high performance, programmers often write custom memory allocators from scratch - a difficult and error-prone process. In this paper, we present a flexible and efficient… Expand
Simulation of High-Performance Memory Allocators
TLDR
This paper presents a flexible and efficient simulator to study Dynamic Memory Managers (DMMs), a composition of one or more memory allocators, which allows programmers to simulate custom and general DMMs, which can be composed without incurring any additional runtime overhead or additional programming cost. Expand
Reconsidering custom memory allocation
TLDR
The results indicate that programmers needing fast regions should use reaps, and that most programmers considering custom allocators should instead use the Lea allocator. Expand
Simulation of high-performance memory allocators
TLDR
This paper presents a flexible and efficient simulator to study Dynamic Memory Managers (DMMs), a composition of one or more memory allocators, and proposes a structured method to search and build DMMs in an object-oriented fashion. Expand
A tunable hybrid memory allocator
TLDR
This tunable hybrid allocator design shows 11-54% better performance and nearly equal memory consumption when compared to the well known Doug Lea allocator in seven benchmark programs. Expand
Memory management for high-performance applications
TLDR
A framework for analyzing and designing high-quality memory managers and a concurrent memory manager called Hoard, which combines the best of both approaches, allowing server applications to manage memory quickly and flexibly while avoiding memory leaks. Expand
A locality-improving dynamic memory allocator
TLDR
A high-performance memory allocator called Vam is presented that transparently improves both cache-level and page-level locality of the application while achieving low fragmentation. Expand
Custom Memory Allocation for Free
TLDR
A novel and efficient container-centric memory allocator, named Defero, which allows a container to guide the allocation of its elements, and applies to the molecular dynamics and compiler applications and obtained significant performance improvements over using the standard GNU STL allocator. Expand
Balancing Allocation Speed , Locality and Fragmentation in a Locality Improving Allocator
The performance of memory allocators is a significant contributor to the overall performance of dynamic applications. A good memory allocator is fast, maximizes locality of access and minimizesExpand
Two memory allocators that use hints to improve locality
TLDR
Two locality improving allocators, that use allocation hints provided automatically from the C++ STL library to improve an application's spatial locality, and they can easily be adjusted to optimize the most important trait for each application. Expand
How to Focus on Memory Allocation Strategies
In the first 30 years or so of the dynamic storage allocation history, people focused on allocation speed and memory fragmentation, for these were the dominant operations. While both goals stillExpand
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 48 REFERENCES
A Customisable Memory Management Framework for C++
TLDR
This work presents a dynamic memory management framework which can be customised to the needs of an algorithm, while preserving the convenience of automatic collection in the normal case. Expand
A customisable memory management framework for C++
TLDR
This work presents a dynamic memory management framework which can be customised to the needs of an algorithm, while preserving the convenience of automatic collection in the normal case and compared to other conservative collectors for C/C++ in various configurations. Expand
Hoard: a scalable memory allocator for multithreaded applications
TLDR
Hoard is the first allocator to simultaneously solve the above problems, and combines one global heap and per-processor heaps with a novel discipline that provably bounds memory consumption and has very low synchronization costs in the common case. Expand
Vmalloc: A General and Efficient Memory Allocator
  • K. Vo
  • Computer Science
  • Softw. Pract. Exp.
  • 1996
TLDR
The new library Vmalloc generalizes malloc to give programmers more control over memory allocation and shows that Vm alloc is competitive to the best of these allocators. Expand
Improving the cache locality of memory allocation
TLDR
It is shown how the design of a memory allocator can significantly affect the reference locality for various applications, and measurements suggest an allocator design that is both very fast and has good locality of reference. Expand
A Customisable Memory Management Framework
TLDR
This work analyzes different possibilities for memory management in C++ and presents a dynamic memory management framework which can be customised to the need of specific applications, and allows full integration and coexistence of different memory management techniques. Expand
Using lifetime predictors to improve memory allocation performance
TLDR
Research is described that can improve all aspects of the performance of dynamic storage allocation by predicting the lifetimes of short-lived objects when they are allocated and can significantly improve a program's memory overhead and reference locality, and even, at times, improve CPU performance as well. Expand
Customalloc: Efficient synthesized memory allocators
TLDR
The allocation and disposal of memory is a ubiquitous operation in most programs, but in some applications, programmers use domain‐specific knowledge in an attempt to improve the speed or memory utilization of memory allocators. Expand
The memory fragmentation problem: solved?
We show that for 8 real and varied C and C++ programs, several conventional dynamic storage allocators provide near-zero fragmentation, once we account for overheads due to implementation detailsExpand
Region-based Memory Management
TLDR
A region-based dynamic semantics for a skeletal programming language extracted from Standard ML is defined and the inference system which specifies where regions can be allocated and de-allocated is presented and a detailed proof that the system is sound with respect to a standard semantics is presented. Expand
...
1
2
3
4
5
...