Abstract
Garbage collection is widely used and has largely been a boon for programmer productivity. However, traditional garbage collection is approaching both practical and theoretical performance limits. In practice, the maximum heap size and heap structure of large applications are influenced as much by garbage collector behavior as by resource availability.
We present an alternate approach to garbage collection wherein the programmer provides untrusted deallocation hints. Usage of deallocation hints is similar to trusted manual deallocation, but the consequence of an inaccurate hint is lost performance not correctness. Our hinted collector algorithm uses these hints to identify a subset of unreachable objects with both better parallel asymptotic complexity and practical performance. On some benchmarks, our prototype collector implementation achieves 10-20% pause time reductions. We close with a discussion of the design trade-offs inherent in our approach and lessons to be learned from our collector.
- TIOBE Programming Community Index for January 2013. http://www.tiobe.com/content/paperinfo/tpci/.\Accessed: 2/1/2013.Google Scholar
- P. Akritidis. Cling: A memory allocator to mitigate dangling pointers. In Proceedings of the 19th USENIX Conference on Security, USENIX Security'10, 2010. Google Scholar
Digital Library
- P. Akritidis, M. Costa, M. Castro, and S. Hand. Baggy bounds checking: an efficient and backwards-compatible defense against out-of-bounds errors. In Proceedings of the 18th Conference on USENIX Security Symposium, SSYM'09, 2009. Google Scholar
Digital Library
- K. Barabash. Scalable garbage collection on highly parallel platforms. Master's thesis, Technion - Israel Institute of Technology, 2011.Google Scholar
- K. Barabash and E. Petrank. Tracing garbage collection on highly parallel platforms. In Proceedings of the 2010 International Symposium on Memory Management, ISMM'10, 2010. Google Scholar
Digital Library
- E. D. Berger and B. G. Zorn. DieHard: probabilistic memory safety for unsafe languages. In Proceedings of the 2006 Conference on Programming Language Design and Implementation, PLDI'06, 2006. Google Scholar
Digital Library
- H.-J. Boehm. Reducing garbage collector cache misses. In Proceedings of the 2nd International Symposium on Memory Management, ISMM'00, 2000. Google Scholar
Digital Library
- H.-J. Boehm and M. Weiser. Garbage collection in an uncooperative environment. Softw. Pract. Exper., Sept. 1988. Google Scholar
Digital Library
- J. Caballero, G. Grieco, M. Marron, and A. Nappa. Undangle: early detection of dangling pointers in use-after-free and double-free vulnerabilities. In Proceedings of the 2012 International Symposium on Software Testing and Analysis, ISSTA 2012, 2012. Google Scholar
Digital Library
- C.-Y. Cher, A. L. Hosking, and T. N. Vijaykumar. Software prefetching for mark-sweep garbage collection: hardware analysis and software redesign. In Proceedings of the 11th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS XI, 2004. Google Scholar
Digital Library
- S. Cherem and R. Rugina. Compile-time deallocation of individual objects. In Proceedings of the 5th International Symposium on Memory Management, ISMM'06, 2006. Google Scholar
Digital Library
- S. Cherem and R. Rugina. Uniqueness inference for compile-time object deallocation. In Proceedings of the 6th International Symposium on Memory Management, ISMM'07, 2007. Google Scholar
Digital Library
- S. Cherem, L. Princehouse, and R. Rugina. Practical memory leak detection using guarded value-flow analysis. In Proceedings of the 2007 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI'07, 2007. Google Scholar
Digital Library
- C. Click, G. Tene, and M. Wolf. The Pauseless GC Algorithm. In Proceedings of the 1st ACM/USENIX International Conference on Virtual Execution Environments, VEE'05, 2005. Google Scholar
Digital Library
- D. Dhurjati, S. Kowshik, V. Adve, and C. Lattner. Memory safety without runtime checks or garbage collection. In Proceedings of the 2003 ACM SIGPLAN Conference on Language, Compiler, and Tools for Embedded Systems, LCTES'03, 2003. Google Scholar
Digital Library
- D. Dhurjati, S. Kowshik, and V. Adve. SAFECode: enforcing alias analysis for weakly typed languages. In Proceedings of the 2006 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI'06, 2006. Google Scholar
Digital Library
- R. Garner, S. M. Blackburn, and D. Frampton. A comprehensive evaluation of object scanning techniques. In Proceedings of the Tenth ACM SIGPLAN International Symposium on Memory Management, ISMM'11, San Jose, CA, USA, June 4 - 5, jun 2011. Google Scholar
Digital Library
- S. Z. Guyer, K. S. McKinley, and D. Frampton. Free-Me: a static analysis for automatic individual object reclamation. In Proceedings of the 2006 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI'06, 2006. Google Scholar
Digital Library
- V. B. Lvin, G. Novark, E. D. Berger, and B. G. Zorn. Archipelago: trading address space for reliability and security. In Proceedings of the 13th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS XIII, 2008. Google Scholar
Digital Library
- M. Maas, P. Reames, J. Morlan, K. Asanović, A. D. Joseph, and J. Kubiatowicz. GPUs as an opportunity for offloading garbage collection. In Proceedings of the 2012 International Symposium on Memory Management, ISMM'12, June 2012. Google Scholar
Digital Library
- S. Nagarakatte, J. Zhao, M. M. Martin, and S. Zdancewic. CETS: compiler enforced temporal safety for C. In Proceedings of the 2010 International Symposium on Memory Management, ISMM'10, 2010. Google Scholar
Digital Library
- G. Novark and E. D. Berger. DieHarder: securing the heap. In Proceedings of the 17th ACM Conference on Computer and Communications Security, CCS'10, 2010. Google Scholar
Digital Library
- G. Novark, E. D. Berger, and B. G. Zorn. Exterminator: automatically correcting memory errors with high probability. In Proceedings of the 2007 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI'07, 2007. Google Scholar
Digital Library
- F. Qin, J. Tucek, J. Sundaresan, and Y. Zhou. Rx: treating bugs as allergies--a safe method to survive software failures. In Proceedings of the 12th ACM Symposium on Operating Systems Principles, SOSP'05, 2005. Google Scholar
Digital Library
- F. Siebert. Limits of parallel marking garbage collection. In Proceedings of the 7th International Symposium on Memory Management, ISMM'08, 2008. Google Scholar
Digital Library
- P. R. Wilson. Uniprocessor garbage collection techniques. In Proceedings of the International Workshop on Memory Management, IWMM'92, 1992. Google Scholar
Digital Library
Index Terms
Towards hinted collection: annotations for decreasing garbage collector pause times
Recommendations
Towards hinted collection: annotations for decreasing garbage collector pause times
ISMM '13: Proceedings of the 2013 international symposium on memory managementGarbage collection is widely used and has largely been a boon for programmer productivity. However, traditional garbage collection is approaching both practical and theoretical performance limits. In practice, the maximum heap size and heap structure of ...
Towards hinted collection: annotations for decreasing garbage collector pause times
ISMM '13: Proceedings of the 2013 international symposium on memory managementGarbage collection is widely used and has largely been a boon for programmer productivity. However, traditional garbage collection is approaching both practical and theoretical performance limits. In practice, the maximum heap size and heap structure of ...
Reducing pause time of conservative collectors
MSP 2002 and ISMM 2002This paper describes an incremental conservative garbage collector that significantly reduces pause time of an existing collector by Boehm et al. Like their collector, it is a true conservative collector that does not require compiler cooperation but ...







Comments