skip to main content
10.1145/1508244.1508278acmconferencesArticle/Chapter ViewAbstractPublication PagesasplosConference Proceedingsconference-collections
research-article

Dynamic prediction of collection yield for managed runtimes

Authors Info & Claims
Published:07 March 2009Publication History

ABSTRACT

The growth in complexity of modern systems makes it increasingly difficult to extract high-performance. The software stacks for such systems typically consist of multiple layers and include managed runtime environments (MREs). In this paper, we investigate techniques to improve cooperation between these layers and the hardware to increase the efficacy of automatic memory management in MREs.

General-purpose MREs commonly implement parallel and/or concurrent garbage collection and employ compaction to eliminate heap fragmentation. Moreover, most systems trigger collection based on the amount of heap a program uses. Our analysis shows that in many cases this strategy leads to ineffective collections that are unable to reclaim sufficient space to justify the incurred cost. To avoid such collections, we exploit the observation that dead objects tend to cluster together and form large, never-referenced, regions in the address space that correlate well with virtual pages that have not recently been referenced by the application. We leverage this correlation to design a new, simple and light-weight, yield predictor that estimates the amount of reclaimable space in the heap using hardware page reference bits. Our predictor allows MREs to avoid low-yield collections and thereby improve resource management.

We integrate this predictor into three state-of-the-art parallel compactors, implemented in the HotSpot JVM, that represent distinct canonical heap layouts. Our empirical evaluation, based on standard Java benchmarks and open-source applications, indicates that inexpensive and accurate yield prediction can improve performance significantly.

References

  1. A.W. Appel and K.Li. Virtual memory primitives for user programs. ACM SIGPLAN Notices, 26(4), 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. D.A. Barrett and B.G. Zorn. Using lifetime predictors to improve memory allocation performance. PLDI'93. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. V. Braberman, F. Fernandez, D. Garbervetsky, and S. Yovine. Parametric prediction of heap memory requirements. ISMM'08. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. P. Cheng and G. Blelloch. A parallel, real-time garbage collector. PLDI'01. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. C. Click, G. Tene, and M. Wolf. The pauseless GC algorithm. VEE'05. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. J. Cohen and A. Nicolau. Comparison of compacting algorithms for garbage collection. TOPLAS, 5(4), 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. D. Cohn and S. Singh. Predicting lifetimes in dynamically allocated memory. ANIPS'97.Google ScholarGoogle Scholar
  8. The DaCapo Benchmark Suite. http://dacapobench.org.Google ScholarGoogle Scholar
  9. D. Detlefs, C. Flood, S. Heller, and T. Printezis. Garbage-first garbage collection. ISMM'04. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. C. Flood, D. Detlefs, N. Shavit, and C. Zhang. Parallel garbage collection for shared memory multiprocessors. JVM'01. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Open Source Software in Java. http://java-source.net.Google ScholarGoogle Scholar
  12. C. Grzegorczyk, S. Soman, C. Krintz, and R. Wolski. Isla Vista heap sizing: Using feedback to avoid paging. CGO'07. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. M. Hertz, Y. Feng, and E. Berger. Page-level cooperative garbage collection. Univ. Massachusetts, Tech. Report, 2004.Google ScholarGoogle Scholar
  14. M. Hertz, Y. Feng, and E.D. Berger. Garbage collection without paging. PLDI'05. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. A.L. Hosking and J.E.B. Moss. Protection traps and alternatives for memory management of an object-oriented language. SOSP'93. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. HotSpot Virtual Machine Garbage Collection. http://java.sun.com/javase/technologies/hotspot/gc.Google ScholarGoogle Scholar
  17. H. Inoue, D. Stefanovic, and S. Forrest. Object lifetime prediction in Java. Univ. New Mexico, Tech. Report, 2003.Google ScholarGoogle Scholar
  18. R. Jones. Dynamic memory management: Challenges for today and tomorrow. ILC'07.Google ScholarGoogle Scholar
  19. R. Jones and C. Ryder. Garbage collection should be lifetime aware. ICOOOLPS'06.Google ScholarGoogle Scholar
  20. R.E. Jones. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, July 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. H. Kermany and E. Petrank. The Compressor: Concurrent, incremental and parallel compaction. PLDI'06. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Open Source J2SE. http://openjdk.java.net.Google ScholarGoogle Scholar
  23. Y. Ossia, O. Ben-Yitzhak, and M. Segal. Mostly concurrent compaction for mark-sweep GC. ISMM'04. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. C. Ruggieri and T.P. Murtagh. Lifetime analysis of dynamically allocated objects. POPL'88. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. N. Sachindran and E. Moss. MarkCopy: Fast copying GC with less space overhead. OOPSLA'03. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. M.L. Seidl and B. Zorn. Low cost methods for predicting heap object behavior. WFDO'99.Google ScholarGoogle Scholar
  27. The SPEC Benchmarks. http://www.spec.org.Google ScholarGoogle Scholar
  28. D.M. Ungar. Generation scavenging: A non-disruptive high performance storage reclamation algorithm. ACM SIGPLAN Notices, 19(5), 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. The VolanoMark Benchmark. http://www.volano.com.Google ScholarGoogle Scholar
  30. M. Wegiel and C. Krintz. The Mapping Collector: Virtual memory support for generational, parallel, and concurrent compaction. ASPLOS'08. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. P.R. Wilson. Uniprocessor garbage collection techniques. Univ. Texas, Tech. Report, 1994.Google ScholarGoogle Scholar
  32. P.R. Wilson, M.S. Johnstone, M. Neely, and D. Boles. Dynamic storage allocation: A survey and critical review. IWMM'95. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. F. Xian, W. Srisa-an, and H. Jiang. Microphase: an approach to proactively invoking garbage collection for improved performance. OOPSLA'07. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. T. Yang, E.D. Berger, M. Hertz, S.F. Kaplan, and J.E.B. Moss. Autonomic heap sizing: Taking real memory into account. ISMM'04. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. T. Yang, E.D. Berger, S.F. Kaplan, and J.E.B. Moss. CRAMM: Virtual memory support for garbage-collected applications. OSDI'06. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. C. Zhang, K. Kelsey, X. Shen, C. Ding, M. Hertz, and M. Ogihara. Program-level adaptive memory management. ISMM'06. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. B. Zorn and M. Seidl. Segregating heap objects by reference behavior and lifetime. ASPLOS'98. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Dynamic prediction of collection yield for managed runtimes

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

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!