Towards a Universal Mutator for Benchmarking Heap Management Systems

We present ACDC, an open-source benchmark that may be configured to emulate explicit single- and multi-threaded memory allocation, sharing, access, and deallocation behavior to expose virtually any relevant allocator performance differences. ACDC mimics periodic memory allocation and deallocation (AC) as well as persistent memory (DC). Memory may be allocated thread-locally and shared among multiple threads to study multicore scalability and even false sharing. Memory may be deallocated by threads other than the allocating threads to study blowup memory fragmentation. Memory may be accessed and deallocated sequentially in allocation order or in tree-like traversals to expose allocator deficiencies in exploiting spatial locality. We demonstrate ACDC’s capabilities with seven state-of-the- art allocators for C/C++ in an empirical study which also reveals interesting performance differences between the allocators.



All code is released under a BSD style license and can be found on github. Consult the README file for instructions on how to build and run ACDC.

Publications bibtex