skip to main content
10.1145/1133981.1134021acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article

Profile-guided proactive garbage collection for locality optimization

Published:11 June 2006Publication History

ABSTRACT

Many applications written in garbage collected languages have large dynamic working sets and poor data locality. We present a new system for continuously improving program data locality at run time with low overhead. Our system proactively reorganizes the heap by leveraging the garbage collector and uses profile information collected through a low-overhead mechanism to guide the reorganization at run time. The key contributions include making a case that garbage collection should be viewed as a proactive technique for improving data locality by triggering garbage collection for locality optimization independently of normal garbage collection for space, combining page and cache locality optimization in the same system, and demonstrating that sampling provides sufficiently detailed data access information to guide both page and cache locality optimization with low runtime overhead. We present experimental results obtained by modifying a commercial, state-of-the-art garbage collector to support our claims. Independently triggering garbage collection for locality optimization significantly improved optimizations benefits. Combining page and cache locality optimizations in the same system provided larger average execution time improvements (17%) than either alone (page 8%, cache 7%). Finally, using sampling limited profiling overhead to less than 3%, on average.

References

  1. Adl-Tabatabai, A., Hudson, R., Serrano, M., Subramoney, S. "Prefetch Injection Based on Hardware Monitoring and Object Matadata." In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '04), 2004, 267--276. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Arnold, M. and Ryder, B. "A Framework for Reducing the Cost of Instrumented Code." In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '01), 2001, 168--179. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Bacon, D.F., Cheng, Perry, Rajan V.T. "A Real-time Garbage Collector with Low Overhead and Consistent Utilization" In Principles of Programming Languages (POPL '03), 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Cheney, C. "A Non-recursive List Compacting Algorithm." Communications of the ACM, 13(11), November 1970, 677--678. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Hirzel, M. and Chilimbi, T. "Bursty Tracing: A Framework for Low-Overhead Temporal Profiling." In 4th ACM Workshop on Feedback-Directed and Dynamic Optimization '01 (FDDO), 2001, 117--126.Google ScholarGoogle Scholar
  6. Chilimbi, T. and Larus, J. "Using Generational Garbage Collection to implement Cache-conscious Data placement." In Proceedings of the 1st International Symposium on Memory Management, October 1998, 37--48. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Chilimbi, T., and Larus, J. "Cache-conscious Structure Definition." In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '99), 1999, 1--12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Courts, R. "Improving Locality of Reference in a Garbage-Collecting Memory Management System." Communications of the ACM, 31(9), September 1988, 1128--1138. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Zorn, B. The Effect of Garbage Collection on Cache Performance, Technical Report CU-CS-528-91, Department of Computer Science, University of Colorado at Boulder, 1991.Google ScholarGoogle ScholarCross RefCross Ref
  10. Hennessy, J. and Patterson, D. Computer Architecture: A Quantitative Approach. Morgan Kaufman, San Mateo, CA. 3rd edition, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Hertz, M., Feng, Y., and Berger, E. D. "Garbage Collection without Paging" In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '05), 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Inagaki, T., Onodera, T., Komastu, H., and Nakatani, T. "Stride Prefecthing by Dynamically Inspecting Objects." In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '03), 2003, 269--277. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Lam, M., Wilson, P., and Moher, T. "Object Type Directed Garbage Collection to Improve Locality." In Proceedings of the International Workshop on Memory Management, 1992, 404--425. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Hirzel, M., Diwan, A. and Hertz, M. "Connectivity-based Garbage Collection." In Proceedings of the 18th annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'03), 2003, 359--373. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Richter, J. "Garbage Collection: Automatic Memory Management in the Microsoft .NET Framework (Part I and II)." MSDN Magazine, 2000, http://msdn.microsoft.com/msdnmag/issues/1100/GCI/ and http://msdn.microsoft.com/msdnmag/issues/1200/GCI2/.Google ScholarGoogle Scholar
  16. Moon, D. "Garbage Collection in a Large LISP System." In Proceedings of the 1984 ACM Symposium on LISP and Functional Programming, August 1984, 235--246. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Nagpurkar, P., Krintz, C., and Sherwood, T. Phase-aware Remote Profiling, Technical report UCSB 2004-21, Department of Computer Science, University of California at Santa Barbara, 2004.Google ScholarGoogle Scholar
  18. White, J. "Address/Memory Management for a Gigantic LISP Environment or, GC Considered Harmful." In Proceedings of the 1980 ACM Conference on LISP and Functional Programming, 1980, 119--127. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Wilson, P. "Uniprocessor Garbage Collection Techniques." In Proceedings of the International Workshop on Memory Management, 1992, 1--42. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Wilson, P., Lam, M., and Moher, T. "Effective Static-graph Reorganization to Improve Locality in Garbage Collected Systems." In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '91), 1991, 177--191. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Shuf, Y., Gupta, M., Franke, H., Appel, A., and Singh, J. "Creating and Preserving Locality of Java Applications at Allocation and Garbage Collection Times." In Proceedings of the 18th annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'02), 2002, 13--25. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Huang, X., Blackburn, S., McKinley, K., Moss, J., Wang, Z., and Cheng, P. "The Garbage Collection Advantage: Improving Program Locality." In Proceedings of the 18th annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'04), 2004, 29--80. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Shen, X., Zhong, Y., and Ding, C. "Locality Phase Prediction." In Proceedings of the 11th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '04), 2004, 165--176. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Chilimbi, T. "Efficient Representations and Abstractions for Quantifying and Exploiting Data Reference Locality." In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '01), 2001, 191--202. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Wilkes, R. "Ngen Revs up your performance with Powerful New Features", MSDN Magazine April 2005.Google ScholarGoogle Scholar

Index Terms

  1. Profile-guided proactive garbage collection for locality optimization

      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
      • Published in

        cover image ACM Conferences
        PLDI '06: Proceedings of the 27th ACM SIGPLAN Conference on Programming Language Design and Implementation
        June 2006
        438 pages
        ISBN:1595933204
        DOI:10.1145/1133981
        • cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 41, Issue 6
          Proceedings of the 2006 PLDI Conference
          June 2006
          426 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/1133255
          Issue’s Table of Contents

        Copyright © 2006 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 11 June 2006

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • Article

        Acceptance Rates

        Overall Acceptance Rate406of2,067submissions,20%

      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!