Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1111583.1111594acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmspConference Proceedingsconference-collections
Article

A locality-improving dynamic memory allocator

Published: 12 June 2005 Publication History

Abstract

In general-purpose applications, most data is dynamically allocated. The memory manager therefore plays a crucial role in application performance by determining the spatial locality of heap objects. Previous general-purpose allocators have focused on reducing fragmentation, while most locality-improving allocators have either focused on improving the locality of the allocator (not the application), or required programmer hints or profiling to guide object placement. We present a high-performance memory allocator called Vam that transparently improves both cache-level and page-level locality of the application while achieving low fragmentation. Over a range of large-footprint benchmarks, Vam improves application performance by an average of 4%-8% versus the Lea (Linux) and FreeBSD allocators. When memory is scarce, Vam improves application performance by up to 2X compared to the FreeBSD allocator, and by over 10X compared to the Lea allocator.

References

[1]
D. F. Bacon, P. Cheng, and V. Rajan. Controlling fragmentation and space consumption in the Metronome, a real-time garbage collector for Java. In ACM SIGPLAN 2003 Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES'2003), San Diego, CA, June 2003. ACM Press.
[2]
D. A. Barrett and B. G. Zorn. Using lifetime predictors to improve memory allocation performance. In Proceedings of SIGPLAN'93 Conference on Programming Languages Design and Implementation, volume 28(6) of ACM SIGPLAN Notices, pages 187--196, Albuquerque, NM, June 1993. ACM Press.
[3]
E. Berger, K. McKinley, R. Blumofe, and P. Wilson. Hoard: A scalable memory allocator for multithreaded applications. In ASPLOS-IX: Ninth International Conference on Architectural Support for Programming Languages and Operating Systems, pages 117--128, Cambridge, MA, Nov. 2000.
[4]
E. D. Berger, B. G. Zorn, and K. S. McKinley. Composing high-performance memory allocators. In Proceedings of SIGPLAN 2001 Conference on Programming Languages Design and Implementation, ACM SIGPLAN Notices, Snowbird, Utah, June 2001. ACM Press.
[5]
E. D. Berger, B. G. Zorn, and K. S. McKinley. Reconsidering custom memory allocation. In OOPSLA'02 ACM Conference on Object-Oriented Systems, Languages and Applications, ACM SIGPLAN Notices, Seattle, WA, Nov. 2002. ACM Press.
[6]
D. Black, J. Carter, G. Feinberg, R. MacDonald, S. Mangalat, E. Sheinbrood, J. Sciver, and P. Wang. OSF/1 virtual memory improvements. In Proceedings of the USENIX Mac Symposium, pages 87--103, November 1991.
[7]
H.-J. Boehm and M. Weiser. Garbage collection in an uncooperative environment. Software Practice and Experience, 18(9):807--820, 1988.
[8]
T. M. Chilimbi, M. D. Hill, and J. R. Larus. Cache-conscious structure layout. In Proceedings of SIGPLAN'99 Conference on Programming Languages Design and Implementation, ACM SIGPLAN Notices, pages 1--12, Atlanta, May 1999. ACM Press.
[9]
D. Grunwald, B. Zorn, and R. Henderson. Improving the cache locality of memory allocation. In Proceedings of SIGPLAN'93 Conference on Programming Languages Design and Implementation, volume 28(6) of ACM SIGPLAN Notices, pages 177--186, Albuquerque, NM, June 1993. ACM Press.
[10]
D. R. Hanson. A portable storage management system for the Icon programming language. Software Practice and Experience, 10(6):489--500, 1980.
[11]
IA-32 Intel architecture software developer's manual, volume 3: System programming guide. ftp://download.intel.com/design/Pentium4/manuals/25366814.pdf.
[12]
M. S. Johnstone. Non-Compacting Memory Allocation and Real-Time Garbage Collection. PhD thesis, University of Texas at Austin, Dec. 1997.
[13]
M. S. Johnstone and P. R. Wilson. The memory fragmentation problem: Solved? In R. Jones, editor, ISMM'98 Proceedings of the First International Symposium on Memory Management, volume 34(3) of ACM SIGPLAN Notices, pages 26--36, Vancouver, Oct. 1998. ACM Press.
[14]
P.-H. Kamp. Malloc(3) revisited. http://phk.freebsd.dk/pubs/malloc.pdf.
[15]
S. F. Kaplan, Y. Smaragdakis, and P. R. Wilson. Flexible reference trace reduction for VM simulations. ACM Trans. Model. Comput. Simul., 13(1):1--38, 2003.
[16]
D. Lea. A memory allocator. http://gee.cs.oswego.edu/dl/html/malloc.html.
[17]
M. Pettersson. The perfctr patch for Linux and the perfex tool. http://user.it.uu.se/~mikpe/linux/perfctr/.
[18]
M. L. Seidl and B. G. Zorn. Implementing heap-object behavior prediction efficiently and effectively. Software Practice and Experience, 31(9):869--892, 2001.
[19]
SPEC CPU2000. http://www.spec.org/osg/cpu2000/.
[20]
SPEC CPU2000 memory footprint. http://www.spec.org/osg/cpu2000/analysis/memory/.
[21]
D. N. Truong, F. Bodin, and A. Seznec. Improving cache behavior of dynamically allocated data structures. In IEEE PACT, pages 322--329, 1998.
[22]
P. R. Wilson, M. S. Johnstone, M. Neely, and D. Boles. Dynamic storage allocation: A survey and critical review. In H. Baker, editor, Proceedings of International Workshop on Memory Management, volume 986 of Lecture Notes in Computer Science, Kinross, Scotland, Sept. 1995. Springer-Verlag.
[23]
T. Yang, E. D. Berger, M. Hertz, S. F. Kaplan, and J. E. B. Moss. Automatic heap sizing: Taking real memory into account. In A. Diwan, editor, ISMM'04 Proceedings of the Third International Symposium on Memory Management, ACM SIGPLAN Notices, Vancouver, Oct. 2004. ACM Press.
[24]
B. Zorn and M. Seidl. Segregating heap objects by reference behavior and lifetime. In Eighth International Conference on Architectural Support for Programming Languages and Operating Systems, San Jose, CA, Oct. 1998.

Cited By

View all
  • (2023)VCMalloc: A Virtually Contiguous Memory AllocatorIEEE Transactions on Computers10.1109/TC.2023.330273172:12(3431-3442)Online publication date: Dec-2023
  • (2020)Verified sequential Malloc/FreeProceedings of the 2020 ACM SIGPLAN International Symposium on Memory Management10.1145/3381898.3397211(48-59)Online publication date: 16-Jun-2020
  • (2019)Timescale functions for parallel memory allocationProceedings of the 2019 ACM SIGPLAN International Symposium on Memory Management10.1145/3315573.3329987(64-78)Online publication date: 23-Jun-2019
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
MSP '05: Proceedings of the 2005 workshop on Memory system performance
June 2005
74 pages
ISBN:1595931473
DOI:10.1145/1111583
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]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 12 June 2005

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. allocator
  2. cache locality
  3. fragmentation
  4. memory management
  5. paging
  6. vam
  7. virtual memory

Qualifiers

  • Article

Conference

MSP05
MSP05: Memory Systems Performance Workshop
June 12, 2005
Illinois, Chicago

Acceptance Rates

Overall Acceptance Rate 6 of 20 submissions, 30%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)40
  • Downloads (Last 6 weeks)6
Reflects downloads up to 09 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2023)VCMalloc: A Virtually Contiguous Memory AllocatorIEEE Transactions on Computers10.1109/TC.2023.330273172:12(3431-3442)Online publication date: Dec-2023
  • (2020)Verified sequential Malloc/FreeProceedings of the 2020 ACM SIGPLAN International Symposium on Memory Management10.1145/3381898.3397211(48-59)Online publication date: 16-Jun-2020
  • (2019)Timescale functions for parallel memory allocationProceedings of the 2019 ACM SIGPLAN International Symposium on Memory Management10.1145/3315573.3329987(64-78)Online publication date: 23-Jun-2019
  • (2019)Mimalloc: Free List Sharding in ActionProgramming Languages and Systems10.1007/978-3-030-34175-6_13(244-265)Online publication date: 18-Nov-2019
  • (2018)SamplerProceedings of the 51st Annual IEEE/ACM International Symposium on Microarchitecture10.1109/MICRO.2018.00027(231-244)Online publication date: 20-Oct-2018
  • (2017)FreeGuardProceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security10.1145/3133956.3133957(2389-2403)Online publication date: 30-Oct-2017
  • (2016)YakProceedings of the 12th USENIX conference on Operating Systems Design and Implementation10.5555/3026877.3026905(349-365)Online publication date: 2-Nov-2016
  • (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)SuperMalloc: a super fast multithreaded malloc for 64-bit machinesACM SIGPLAN Notices10.1145/2887746.275417850:11(41-55)Online publication date: 14-Jun-2015
  • Show More Cited By

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