Abstract
Compaction of a managed heap is a costly operation to be avoided as much as possible in commercial runtimes. Instead, partial compaction is often used to defragment parts of the heap and avoid space blowup. Previous study of compaction limitation provided some initial asymptotic bounds but no implications for practical systems. In this work, we extend the theory to obtain better bounds and make them strong enough to become meaningful for modern systems.
- Diab Abuaiadh, Yoav Ossia, Erez Petrank, and Uri Silbershtein. 2004. An efficient parallel heap compaction algorithm. In ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (ACM SIGPLAN Notices 39(10)). ACM Press, New York, NY, 224--236. Google ScholarDigital Library
- David F. Bacon, Perry Cheng, and V. T. Rajan. 2003. A real-time garbage collector with low overhead and consistent utilization. In 30th Annual ACM Symposium on Principles of Programming Languages (ACM SIGPLAN Notices 38(1)). ACM Press, New York, NY, 285--298. Google ScholarDigital Library
- Ori Ben-Yitzhak, Irit Goft, Elliot Kolodner, Kean Kuiper, and Victor Leikehman. 2002. An algorithm for parallel incremental compaction. In 3rd International Symposium on Memory Management (ACM SIGPLAN Notices 38(2 supplement)), Hans-J. Boehm and David Detlefs (Eds.). ACM Press, New York, NY, 100--105. Google ScholarDigital Library
- A. Bendersky and E. Petrank. 2011. Space overhead bounds for dynamic memory management with partial compaction. Princip. Programm. Lang. 34, 3 (2011), 491--499. Google ScholarDigital Library
- Hans-Juergen Boehm. 2002. Bounding space usage of conservative garbage collectors, See POPL 2002 {2002}, 93--100. Google ScholarDigital Library
- Hans-Juergen Boehm. 2004. The space cost of lazy reference counting. In 31st Annual ACM Symposium on Principles of Programming Languages (ACM SIGPLAN Notices 39(1)). ACM Press, New York, NY, 210--219. Google ScholarDigital Library
- Cliff Click, Gil Tene, and Michael Wolf. 2005. The Pauseless GC algorithm. In 1st ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, Michael Hind and Jan Vitek (Eds.). ACM Press, New York, NY, 46--56. Google ScholarDigital Library
- David Detlefs, Christine Flood, Steven Heller, and Tony Printezis. 2004. Garbage-first garbage collection. In 4th International Symposium on Memory Management, David F. Bacon and Amer Diwan (Eds.). ACM Press, New York, NY, 37--48. Google ScholarDigital Library
- Richard Jones, Antony Hosking, and Eliot Moss. 2011. The Garbage Collection Handbook: The Art of Automatic Memory Management. Chapman 8 Hall. Google ScholarDigital Library
- Haim Kermany and Erez Petrank. 2006. The compressor: Concurrent, incremental and parallel compaction. In ACM SIGPLAN Conference on Programming Language Design and Implementation (ACM SIGPLAN Notices 41(6)), Michael I. Schwartzbach and Thomas Ball (Eds.). ACM Press, New York, NY, 354--363. Google ScholarDigital Library
- Erez Petrank and Dror Rawitz. 2002. The hardness of cache conscious data placement. In Proceedings of the 29th Annual ACM Symposium on Principles of Programming Languages. ACM, New York, NY, 101--112. Google ScholarDigital Library
- Filip Pizlo, Erez Petrank, and Bjarne Steensgaard. 2008. A study of concurrent real-time garbage collectors. In ACM SIGPLAN Conference on Programming Language Design and Implementation (ACM SIGPLAN Notices 43(6)), Rajiv Gupta and Saman P. Amarasinghe (Eds.). ACM Press, New York, NY, 33--44. Google ScholarDigital Library
- POPL. 2002. Twenty-Ninth Annual ACM Symposium on Principles of Programming Languages. ACM Press, New York, NY.Google Scholar
- J.M. Robson. 1971. An estimate of the store size necessary for dynamic storage allocation. J. ACM 18, 3 (1971), 416--423. Google ScholarDigital Library
- J.M. Robson. 1974. Bounds for some functions concerning dynamic storage allocation. J. ACM 21, 3 (1974), 491--499. Google ScholarDigital Library
Index Terms
- Limitations of Partial Compaction: Towards Practical Bounds
Recommendations
Space overhead bounds for dynamic memory management with partial compaction
Dynamic memory allocation is ubiquitous in today's runtime environments. Allocation and deallocation of objects during program execution may cause fragmentation and foil the program's ability to allocate objects. Robson [1971] has shown that a worst-...
Immix: a mark-region garbage collector with space efficiency, fast collection, and mutator performance
PLDI '08Programmers are increasingly choosing managed languages for modern applications, which tend to allocate many short-to-medium lived small objects. The garbage collector therefore directly determines program performance by making a classic space-time ...
Limitations of partial compaction: towards practical bounds
PLDI '13: Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and ImplementationCompaction of a managed heap is considered a costly operation, and is avoided as much as possible in commercial runtimes. Instead, partial compaction is often used to defragment parts of the heap and avoid space blow up. Previous study of compaction ...
Comments