Generating memory allocators from the ground up
Authors: Pavlo Pastaryev, Charith Mendis, Lawrence Rauchwerger
Venue: International Workshop on Languages and Compilers for Parallel Computing
DOI:
Link to Publication
Abstract:
"General-purpose memory allocators are made to perform well on average for any given program. They thus make decisions which can benefit a broad set of applications and can miss out on possible optimizations. When a given general-purpose allocator does not fit the needs of a program, the developer has a choice of either switching to a different allocator or writing a custom one from scratch. Both options can be quite costly, and can still fail to satisfy the developer’s requirements. We propose a different approach to memory allocation: allocators are automatically generated from the ground up for any given program and optimized for the needed metric. We outline metrics of allocator performance, present a taxonomy of single-threaded memory allocators, and a framework for generating custom allocators based on the taxonomy. We show that allocators generated in such way can match or outperform general-purpose allocators and that different applications benefit from different components of our taxonomy."
@inproceedings{pastaryev2023generating,
title={Generating Memory Allocators from the Ground Up},
author={Pastaryev, Pavlo and Mendis, Charith and Rauchwerger, Lawrence},
booktitle={International Workshop on Languages and Compilers for Parallel Computing},
pages={160--173},
year={2023},
organization={Springer}
}