Learning-based Memory Allocation for C++ Server Workloads
Martin Maas, David G. Andersen, Michael Isard, Mohammad Mahdi Javanmard, Kathryn S. McKinley, Colin Raffel
Abstract
Modern C++ servers have memory footprints that vary widely over time, causing persistent heap fragmentation of up to 2x from long-lived objects allocated during peak memory usage. This fragmentation is exacerbated by the use of huge (2MB) pages, a requirement for high performance on large heap sizes. Reducing fragmentation automatically is challenging because C++ memory managers cannot move objects.
Topics & Concepts
Heap (data structure)Computer scienceFragmentation (computing)ServerOperating systemParallel computingProgramming languageParallel Computing and Optimization TechniquesCloud Computing and Resource ManagementDistributed and Parallel Computing Systems