Reconsidering custom memory allocation

@inproceedings{Berger2002ReconsideringCM,
  title={Reconsidering custom memory allocation},
  author={E. Berger and B. Zorn and K. McKinley},
  booktitle={OOPSLA '02},
  year={2002}
}
Programmers hoping to achieve performance improvements often use custom memory allocators. This in-depth study examines eight applications that use custom allocators. Surprisingly, for six of these applications, a state-of-the-art general-purpose allocator (the Lea allocator) performs as well as or better than the custom allocators. The two exceptions use regions, which deliver higher performance (improvements of up to 44%). Regions also reduce programmer burden and eliminate a source of memory… 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
On the detection of custom memory allocators in C binaries
TLDR
This work presents MemBrush, a new tool to detect memory allocation and deallocation functions in stripped binaries with high accuracy and can furnish existing reverse engineering tools with detailed information about the memory management API, and as a result perform an analysis of the actual application specific data structures designed by the programmer. Expand
Mimalloc: Free List Sharding in Action
TLDR
It is shown that mimalloc has superior performance to modern commercial memory allocators, including tcmalloc and jemalloc, with speed improvements of 7% and 14%, respectively, on redis, and consistently out performs over a wide range of sequential and concurrent benchmarks. Expand
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
Who allocated my memory? Detecting custom memory allocators in C binaries
TLDR
This work presents MemBrush, a new tool to detect memory allocation and deallocation functions in stripped binaries with high accuracy and can furnish existing reversing tools with detailed information about the memory management API, and as a result perform an analysis of the actual application specific data structures designed by the programmer. 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
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
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
HALO: post-link heap-layout optimisation
TLDR
HALO is proposed: a post-link profile-guided optimisation tool that can improve the layout of heap data to reduce cache misses automatically and specialise memory-management routines to allocate groups of related objects from separate pools to increase their spatial locality. 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
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 55 REFERENCES
Composing high-performance memory allocators
TLDR
A clean, easy-to-use allocator interface that seamlessly combines the power and efficiency of any number of general and custom allocators within a single application is demonstrated. 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
The measured cost of conservative garbage collection
  • B. Zorn
  • Computer Science
  • Softw. Pract. Exp.
  • 1993
TLDR
It is found that programmer enhancements often have little effect on program performance and that the true cost of conservative garbage collection is not the CPU overhead, but the memory system overhead of the algorithm. Expand
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
Language support for regions
TLDR
This work generalises type annotations that make the structure of a program's regions more explicit in a region type system whose main novelty is the use of existentially quantified abstract regions to represent pointers to objects whose region is partially or totally unknown. Expand
Memory management with explicit regions
TLDR
It is shown that on a suite of allocation-intensive C programs, regions are competitive with malloc/free and sometimes substantially faster and that regions support safe memory management with low overhead. Expand
Region-based memory management in cyclone
TLDR
This paper focuses on the region-based memory management of Cyclone and its static typing discipline, and combines default annotations, local type inference, and a novel treatment of region effects to reduce this burden. 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
Conservative garbage collection for general memory allocators
TLDR
An implementation of a malloc/jump-table based conservative garbage collection for Doug Lea's memory allocator, and experimental results that compare this implementation with Boehm-Demers-Weiser GC, a state-of-the-art conservative garbage collector are described. Expand
...
1
2
3
4
5
...