skip to main content
10.1145/2491894.2464161acmconferencesArticle/Chapter ViewAbstractPublication PagesismmConference Proceedingsconference-collections
research-article

ACDC: towards a universal mutator for benchmarking heap management systems

Published: 20 June 2013 Publication History

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.

References

[1]
CITI Projects: Linux scalability, 1999. URL http://www.citi.umich.edu/projects/linux-scalability/.
[2]
MicroQuill Inc., 2013. URL http://www.microquill.com/.
[3]
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.
[4]
E. D. Berger. The Hoard Memory Allocator Documentation: Frequently Asked Questions, 2004. URL http://people.cs.umass.edu/ emery/hoard/hoard-documentation.html#IDAOZYP.
[5]
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.
[6]
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.
[7]
J. Evans. A Scalable Concurrent malloc(3) Implementation for FreeBSD. In The Technical BSD Conference, BSDCan '06, Apr. 2006.
[8]
J. Evans. Scalable memory allocation using jemalloc, 2011. URL https://www.facebook.com/notes/facebook-engineering/scalable-memory-allocation-using-jemalloc/480222803919.
[9]
W. Gloger. Wolfram Gloger's malloc homepage, 2006. URL http://www.malloc.de/en/.
[10]
Google, Inc. Google Performance Tools, 2012. URL http://code.google.com/p/gperftools/wiki/GooglePerformanceTools.
[11]
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.
[12]
Intel, Inc. Thread Building Blocks, 2013. URL http://threadingbuildingblocks.org/.
[13]
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.
[14]
D. Lea. A Memory Allocator, 2000. URL http://g.oswego.edu/dl/html/malloc.html.
[15]
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.
[16]
Lockless, Inc. The Lockless Memory Allocator, 2013. URL http://locklessinc.com/.
[17]
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.
[18]
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.
[19]
Standard Performance Evaluation Corporation. Specjvm2008, 2013. URL http://www.spec.org/jvm2008/.
[20]
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.
[21]
B. Zorn and D. Grunwald. Empirical measurements of six allocation-intensive C programs. SIGPLAN Not., 27 (12): 71--80, Dec. 1992.

Cited By

View all
  • (2017)Selfie and the basicsProceedings of the 2017 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3133850.3133857(198-213)Online publication date: 25-Oct-2017
  • (2016)Rethinking a heap hierarchy as a cache hierarchy: a higher-order theory of memory demand (HOTM)ACM SIGPLAN Notices10.1145/3241624.292670851:11(111-121)Online publication date: 14-Jun-2016
  • (2016)Rethinking a heap hierarchy as a cache hierarchy: a higher-order theory of memory demand (HOTM)Proceedings of the 2016 ACM SIGPLAN International Symposium on Memory Management10.1145/2926697.2926708(111-121)Online publication date: 14-Jun-2016
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ISMM '13: Proceedings of the 2013 international symposium on memory management
June 2013
140 pages
ISBN:9781450321006
DOI:10.1145/2491894
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 20 June 2013

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. benchmark
  2. explicit heap management
  3. multicore

Qualifiers

  • Research-article

Conference

ISMM '13
Sponsor:
ISMM '13: International Symposium on Memory Management
June 20 - 21, 2013
Washington, Seattle, USA

Acceptance Rates

ISMM '13 Paper Acceptance Rate 11 of 22 submissions, 50%;
Overall Acceptance Rate 72 of 156 submissions, 46%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 20 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2017)Selfie and the basicsProceedings of the 2017 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3133850.3133857(198-213)Online publication date: 25-Oct-2017
  • (2016)Rethinking a heap hierarchy as a cache hierarchy: a higher-order theory of memory demand (HOTM)ACM SIGPLAN Notices10.1145/3241624.292670851:11(111-121)Online publication date: 14-Jun-2016
  • (2016)Rethinking a heap hierarchy as a cache hierarchy: a higher-order theory of memory demand (HOTM)Proceedings of the 2016 ACM SIGPLAN International Symposium on Memory Management10.1145/2926697.2926708(111-121)Online publication date: 14-Jun-2016
  • (2015)Fast, multicore-scalable, low-fragmentation memory allocation through large virtual memory and global data structuresACM SIGPLAN Notices10.1145/2858965.281429450:10(451-469)Online publication date: 23-Oct-2015
  • (2015)Fast, multicore-scalable, low-fragmentation memory allocation through large virtual memory and global data structuresProceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications10.1145/2814270.2814294(451-469)Online publication date: 23-Oct-2015
  • (2014)ACDC-JSACM SIGPLAN Notices10.1145/2775052.266108950:2(67-78)Online publication date: 14-Oct-2014
  • (2014)ACDC-JSProceedings of the 10th ACM Symposium on Dynamic languages10.1145/2661088.2661089(67-78)Online publication date: 20-Oct-2014
  • (2017)Selfie and the basicsProceedings of the 2017 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3133850.3133857(198-213)Online publication date: 25-Oct-2017

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media