Abstract
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.
- CITI Projects: Linux scalability, 1999. URL http://www.citi.umich.edu/projects/linux-scalability/.Google Scholar
- MicroQuill Inc., 2013. URL http://www.microquill.com/.Google Scholar
- D. A. Barrett and B. G. Zorn. Using lifetime predictors to improve memory allocation performance. In Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation, PLDI '93, pages 187--196, New York, USA, 1993. ACM. Google ScholarDigital Library
- E. D. Berger. The Hoard Memory Allocator Documentation: Frequently Asked Questions, 2004. URL http://people.cs.umass.edu/ emery/hoard/hoard-documentation.html#IDAOZYP.Google Scholar
- E. D. Berger, K. S. McKinley, R. D. Blumofe, and P. R. Wilson. Hoard: A Scalable Memory Allocator for Multithreaded Applications. SIGPLAN Not., 35 (11): 117--128, Nov. 2000. Google ScholarDigital Library
- J. Bonwick and J. Adams. Magazines and Vmem: Extending the Slab Allocator to Many CPUs and Arbitrary Resources. In Proceedings of the 2001 USENIX Annual Technical Conference, 2001. Google ScholarDigital Library
- J. Evans. A Scalable Concurrent malloc(3) Implementation for FreeBSD. In The Technical BSD Conference, BSDCan '06, Apr. 2006.Google Scholar
- J. Evans. Scalable memory allocation using jemalloc, 2011. URL https://www.facebook.com/notes/facebook-engineering/scalable-memory-allocation-using-jemalloc/480222803919.Google Scholar
- W. Gloger. Wolfram Gloger's malloc homepage, 2006. URL http://www.malloc.de/en/.Google Scholar
- Google, Inc. Google Performance Tools, 2012. URL http://code.google.com/p/gperftools/wiki/GooglePerformanceTools.Google Scholar
- B. Hayes. Using key object opportunism to collect old objects. In Conference proceedings on Object-oriented programming systems, languages, and applications, OOPSLA '91, pages 33--46, New York, USA, 1991. ACM. Google ScholarDigital Library
- Intel, Inc. Thread Building Blocks, 2013. URL http://threadingbuildingblocks.org/.Google Scholar
- P.-A. Larson and M. Krishnan. Memory allocation for long-running server applications. In Proceedings of the 1st international symposium on Memory management, ISMM '98, pages 176--185, New York, USA, 1998. ACM. Google ScholarDigital Library
- D. Lea. A Memory Allocator, 2000. URL http://g.oswego.edu/dl/html/malloc.html.Google Scholar
- C. Lever and D. Boreham. malloc() performance in a multithreaded Linux environment. In Proceedings of the FREENIX Track of the 2000 USENIX Annual Technical Conference, June 2001. Google ScholarDigital Library
- Lockless, Inc. The Lockless Memory Allocator, 2013. URL http://locklessinc.com/.Google Scholar
- M. M. Michael. Scalable lock-free dynamic memory allocation. In Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation, PLDI '04, pages 35--46, New York, USA, 2004. ACM. Google ScholarDigital Library
- S. Schneider, C. D. Antonopoulos, and D. S. Nikolopoulos. Scalable locality-conscious multithreaded memory allocation. In Proceedings of the 5th international symposium on Memory management, ISMM '06, pages 84--94, New York, USA, 2006. ACM. Google ScholarDigital Library
- Standard Performance Evaluation Corporation. Specjvm2008, 2013. URL http://www.spec.org/jvm2008/.Google Scholar
- R. C. Weisner. How Memory Allocation Affects Performance in Multithreaded Programs, 2012. URL http://www.oracle.com/technetwork/articles/servers-storage-dev/mem-alloc-1557798.html.Google Scholar
- B. Zorn and D. Grunwald. Empirical measurements of six allocation-intensive C programs. SIGPLAN Not., 27 (12): 71--80, Dec. 1992. Google ScholarDigital Library
Index Terms
- ACDC: towards a universal mutator for benchmarking heap management systems
Recommendations
ACDC: towards a universal mutator for benchmarking heap management systems
ISMM '13: Proceedings of the 2013 international symposium on memory managementWe 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 ...
ACDC: towards a universal mutator for benchmarking heap management systems
ISMM '13: Proceedings of the 2013 international symposium on memory managementWe 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 ...
Short-term memory for self-collecting mutators
ISMM '11: Proceedings of the international symposium on Memory managementWe propose a new memory model called short-term memory for managing objects on the heap. In contrast to the traditional persistent memory model for heap management, objects in short-term memory expire after a finite amount of time, which makes ...
Comments