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.8W
Papers: 6.2W
Citations: 644