skip to main content
research-article

Towards hinted collection: annotations for decreasing garbage collector pause times

Published:20 June 2013Publication History
Skip Abstract Section

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.

References

  1. TIOBE Programming Community Index for January 2013. http://www.tiobe.com/content/paperinfo/tpci/.\Accessed: 2/1/2013.Google ScholarGoogle Scholar
  2. P. Akritidis. Cling: A memory allocator to mitigate dangling pointers. In Proceedings of the 19th USENIX Conference on Security, USENIX Security'10, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. K. Barabash. Scalable garbage collection on highly parallel platforms. Master's thesis, Technion - Israel Institute of Technology, 2011.Google ScholarGoogle Scholar
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. H.-J. Boehm. Reducing garbage collector cache misses. In Proceedings of the 2nd International Symposium on Memory Management, ISMM'00, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. H.-J. Boehm and M. Weiser. Garbage collection in an uncooperative environment. Softw. Pract. Exper., Sept. 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. F. Siebert. Limits of parallel marking garbage collection. In Proceedings of the 7th International Symposium on Memory Management, ISMM'08, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. P. R. Wilson. Uniprocessor garbage collection techniques. In Proceedings of the International Workshop on Memory Management, IWMM'92, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Towards hinted collection: annotations for decreasing garbage collector pause times

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!