arrow
Return

Generating Memory Allocators from the Ground Up

delete2026-01-01
delete0
PRE
AI
P
Pavlo Pastaryev *
C
Charith Mendis
L
Lawrence Rauchwerger
DOI:10.1007/978-3-032-02436-7_11delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
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.
Keywords:
Memory allocation
Program synthesis

Journal

L
LANGUAGES AND COMPILERS FOR PARALLEL COMPUTING, LCPC 2023
IF:
0
Papers:
14
Citations:
0

Organization

University of Illinois System cover
University of Illinois System
Scholars:
6.9W
Papers: 6.2W
Citations: 644
Cited Papers

Cited Papers

Mimalloc: Free List Sharding in Action
err2019-11-18
err0
PREAI
errDaan Leijen; Benjamin Zorn; Leonardo de Moura
errShare
errSave
Cache-conscious coallocation of hot data streams
err2006-06-11
err0
PREAI
errTrishul M. Chilimbi; Ran Shaham
errShare
errSave
Composing high-performance memory allocators
err2001-05-01
err0
errOAAI
errEmery D. Berger; Benjamin G. Zorn; Kathryn S. McKinley
errShare
errSave
Scalable locality-conscious multithreaded memory allocation
err2006-06-10
err0
errOAAI
errScott Schneider; Christos D. Antonopoulos; Dimitrios S. Nikolopoulos
errShare
errSave
Segregating heap objects by reference behavior and lifetime
err1998-10-01
err0
errOAAI
errMatthew L. Seidl; Benjamin G. Zorn
errShare
errSave
researcher View more