Abstract
Much research has been devoted to studies of and algorithms for memory management based on garbage collection or explicit allocation and deallocation. An alternative approach, region-based memory management, has been known for decades, but has not been well-studied. In a region-based system each allocation specifies a region, and memory is reclaimed by destroying a region, freeing all the storage allocated therein. We show that on a suite of allocation-intensive C programs, regions are competitive with malloc/free and sometimes substantially faster. We also show that regions support safe memory management with low overhead. Experience with our benchmarks suggests that modifying many existing programs to use regions is not difficult.
- AFL95 Alexander Aiken, Manuel Fahndrich, and Raph Levien. Better static memory management' improving region-based analysis of higher-order languages. In Proceedings of the A CM SIGPLAN '95 Conference on Programming Language Design and Implementation (PLDI), pages 174-185, La Jolla, CA, June 1995. Google ScholarDigital Library
- Bak78 Henry G. Baker. List processing in real-time on a serial computer. Communications of the A CM, 21(4):280-94, 1978. Google ScholarDigital Library
- Bob80 Daniel G. Bobrow. Managing re-entrant structures using reference counts. A CM Transactions on Programming Languages and Systems, 2(3):269-273, July 1980. Google ScholarDigital Library
- BTV96 Lars Birkedal, Mads Tofte, and Magnus Vejlstrup. From region inference to yon Neumann machines via region representation inference. In Proceedings of the ~3rd A CM SIGPLAN-$IGACT Symposium on Principles of Programming Languages, St. Petersburg Beach, FL, January 1996. Google ScholarDigital Library
- BW88 Hans-Juergen Boehm and Mark Weiser. Garbage collection in an uncooperative environment. Software Practice and Experience, 18(9):807-820, 1988. Google ScholarDigital Library
- BZ93 David A. Barrett and Benjamin G. Zorn. Using lifetime predictors to improve memory allocation performance. In Proceedings of the A CM SIGPLAN '93 Conference on Programming Languages Design and Implementation, pages 187-196, Albuquerque, New Mexico, June 1993. Google ScholarDigital Library
- DB76 L. Peter Deutsch and Daniel G. Bobrow. An efficient incremental automatic garbage collector. Communications of the A CM, 19(9):522-526, September 1976. Google ScholarDigital Library
- DDZ94 David Detlefs, Al Dosser, and Benjamin Zorn. Memory allocation costs in large C and C++ programs. Software Practice and Experience, 24(6), 1994. Google ScholarDigital Library
- FH95 Chris W. Fraser and David R. Hanson. A Retargetable C Compiler: Design and Implementation. Benjamin/Cummings Pub. Co., Redwood City, CA, USA, 1995. Google ScholarDigital Library
- GJS96 j. Gosling, B. Joy, and G. Steele. The Java Language Specification. The Java Series. Addison-Wesley, Reading, MA, USA, June 1996. Google ScholarDigital Library
- GZ93 Dirk Grtmwald and Benjamin Zorn. Customalloc: Efficient, synthesised memory allocators. Software Practice and Experience, 23:851-869, 1993. Google ScholarDigital Library
- GZH93 Dirk Grunwald, Benjamin Zorn, and Robert Henderson. Improving the cache locality of memory allocation. In Proceedings of the A CM SIGPLAN '93 Conference on Programming Languages Design and Implementation, pages 177-186, Albuquerque, New Mexico, June 1993. Google ScholarDigital Library
- Han90 David R. Hanson. Fast allocation and deallocation of memory based on object lifetimes. Software Practice and Experience, 20(1):5-12, January 1990. Google ScholarDigital Library
- IY90 Yuuji Ichisugi and Akinori Yonezawa. Distributed garbage collection using group reference counting. In OOPSLA/ECOOP '90 Workshop on Garbage Collection in Object- Oriented Systems, October 1990.Google Scholar
- Ros67 D.T. Ross. The AED free storage package. Communications of the A CM, 10(8):481- 492, August 1967. Google ScholarDigital Library
- SO96 David Stoutamire and Stephen Omohundro. The Sather 1.1 Specification. Technical Report TR-96-012, International Computer Science Institute, Berkeley, CA, August 1996.Google Scholar
- Sto97 D. Stoutamire. Portable, Modular Expression of Locality. PhD thesis, University of California at Berkeley, 1997. Google ScholarDigital Library
- TT97 Mads Tofte and Jean-Pierre Talpin. Regionbased memory management. Information and Computation, 132(2):109-176, February 1997. Google ScholarDigital Library
- Vo96 Kiem-Phong Vo. Vmalloc: A general and efficient memory allocator. Software Practice and Experience, 26(3):357-374, March 1996.Google ScholarCross Ref
- Wil92 Paul R. Wilson. Uniprocessor garbage collection techniques. In Proceedings of International Workshop on Memory Management, volume 637 of Lecture Notes in Computer Science, St Malo, France, September 1992. Springer-Verlag. Google ScholarDigital Library
- WJ93 Paul R. Wilson and Mark S. Johnstone. Truly real-time non-copying garbage collection. In OOPSLA/ECOOP '93 Workshop on Garbage Collection in Object-Oriented Systems, October 1993.Google Scholar
- WJNB95 Paul R. Wilson, Mark S. Johnstone, Michael Neely, and David Boles. Dynamic storage allocation: A survey and critical review. In Proceedings of International Workshop on Memory Management, volume 986 of Lecture Notes in Computer Science, Kinross, Scotland, September 1995. Springer-Verlag. Google ScholarDigital Library
- YSP+98 Kathy Yelick, Luigi Semenzato, Geoff Pike, Carleton Miyamoto, Ben Liblit, Arvind Krishnamurthy, Paul Hilfmger, Susan Graham, David Gay, Phil Colella, and Alex Aiken. Titanium: A High-Performance Java Dialect. In Proceedings of A CM 1998 Workshop on Java for High-Performance Network Computing, pages 1-14, Palo Alto, CA, February 1998.Google Scholar
Index Terms
- Memory management with explicit regions
Recommendations
Memory management with explicit regions
PLDI '98: Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementationMuch research has been devoted to studies of and algorithms for memory management based on garbage collection or explicit allocation and deallocation. An alternative approach, region-based memory management, has been known for decades, but has not been ...
Quantifying the performance of garbage collection vs. explicit memory management
Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming systems languages and applicationsGarbage collection yields numerous software engineering benefits, but its quantitative impact on performance remains elusive. One can compare the cost of conservative garbage collection to explicit memory management in C/C++ programs by linking in an ...
Quantifying the performance of garbage collection vs. explicit memory management
OOPSLA '05: Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applicationsGarbage collection yields numerous software engineering benefits, but its quantitative impact on performance remains elusive. One can compare the cost of conservative garbage collection to explicit memory management in C/C++ programs by linking in an ...
Comments