Generational Real-Time Garbage Collection

A Three-Part Invention for Young Objects
  • Daniel Frampton
  • David F. Bacon
  • Perry Cheng
  • David Grove
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4609)

Abstract

While real-time garbage collection is now available in production virtual machines, the lack of generational capability means applications with high allocation rates are subject to reduced throughput and high space overheads.

Since frequent allocation is often correlated with a high-level, object-oriented style of programming, this can force builders of real-time systems to compromise on software engineering.

We have developed a fully incremental, real-time generational collector based on a tri-partite nursery, which partitions the nursery into regions that are being allocated, collected, and promoted. Nursery collections are incremental, and can occur within any phase of a mature collection.

We present the design, mathematical model, and implementation of our collector in IBM’s production Real-time Java virtual machine, and show both analytically and experimentally that the collector achieves real-time bounds comparable to a non-generational Metronome-style collector, while cutting memory consumption and total execution times by as much as 44% and 24% respectively.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Bacon, D.F., Cheng, P., Rajan, V.T.: A real-time garbage collector with low overhead and consistent utilization. In: Proceedings of the 30th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, New Orleans, Louisiana, pp. 285–298. ACM Press, New York (2003)CrossRefGoogle Scholar
  2. 2.
    IBM Corporation: WebSphere Real Time Java virtual machine (August 2006), http://www.ibm.com/software/webservers/realtime
  3. 3.
    Bollella, G., et al,: The Real-Time Specification for Java. In: The Java Series, Addison-Wesley, UK (2000)Google Scholar
  4. 4.
    Bacon, D.F., Cheng, P., Grove, D., Vechev, M.T.: Syncopation: generational real-time garbage collection in the Metronome. In: Proceedings of the ACM Conference on Languages, Compilers, and Tools for Embedded Systems, Chicago, Illinois, pp. 183–192 (2005)Google Scholar
  5. 5.
    Doligez, D., Leroy, X.: A concurrent generational garbage collector for a multi-threaded implementation of ML. In: Conf. Record of the Twentieth ACM Symposium on Principles of Programming Languages, pp. 113–123. ACM Press, New York (1993)Google Scholar
  6. 6.
    Baker, H.G.: List processing in real-time on a serial computer. Communications of the ACM 21(4), 280–294 (1978)MATHCrossRefGoogle Scholar
  7. 7.
    Cheng, P., Blelloch, G.: A parallel, real-time garbage collector. In: Proc. of the SIGPLAN Conference on Programming Language Design and Implementation, Snowbird, Utah, pp. 125–136 (June 2001)Google Scholar
  8. 8.
    Yuasa, T.: Real-time garbage collection on general-purpose machines. Journal of Systems and Software 11(3), 181–198 (1990)CrossRefGoogle Scholar
  9. 9.
    Jones, R., Lins, R.: Garbage Collection. John Wiley and Sons, Chichester (1996)MATHGoogle Scholar
  10. 10.
    Brooks, R.A.: Trading data space for reduced time and code space in real-time garbage collection on stock hardware. In: Steele, G.L. (ed.) Conference Record of the 1984 ACM Symposium on Lisp and Functional Programming, Austin, Texas, pp. 256–262. ACM Press, New York (1984)CrossRefGoogle Scholar
  11. 11.
    Blackburn, S.M., Garner, R., Hoffmann, C., Khang, A.M., McKinley, K.S., Bentzur, R., Diwan, A., Feinberg, D., Frampton, D., Guyer, S.Z., Hirzel, M., Hosking, A., Jump, M., Lee, H., Eliot, J., Moss, B., Phansalkar, A., Stefanović, D., VanDrunen, T., von Dincklage, D., Wiedermann, B.: The dacapo benchmarks: Java benchmarking development and analysis. In: OOPSLA ’06: Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, pp. 169–190. ACM Press, New York (2006)CrossRefGoogle Scholar
  12. 12.
    Ungar, D.M.: Generation scavenging: A non-disruptive high performance storage reclamation algorithm. In: Henderson, P. (ed.) Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, Pittsburgh, Pennsylvania, pp. 157–167. ACM Press, New York (1984)CrossRefGoogle Scholar
  13. 13.
    Moon, D.A.: Garbage collection in a large LISP system. In: Conference Record of the 1984 ACM Symposium on LISP and Functional Programming, Austin, Texas, pp. 235–246. ACM Press, New York (1984)CrossRefGoogle Scholar
  14. 14.
    Domani, T., Kolodner, E.K., Petrank, E.: A generational on-the-fly garbage collector for Java. In: Proc. of the SIGPLAN Conference on Programming Language Design and Implementation, pp. 274–284 (June 2000)Google Scholar
  15. 15.
    Appel, A.W., Ellis, J.R., Li, K.: Real-time concurrent collection on stock multiprocessors. In: Proceedings of the SIGPLAN’88 Conference on Programming Language Design and Implementation, Atlanta, Georgia, pp. 11–20 (June 1988)Google Scholar
  16. 16.
    Nettles, S., O’Toole, J.: Real-time garbage collection. In: Proc. of the SIGPLAN Conference on Programming Language Design and Implementation, pp. 217–226 (June 1993)Google Scholar
  17. 17.
    Henriksson, R.: Scheduling Garbage Collection in Embedded Systems. PhD thesis, Lund Institute of Technology (July 1998)Google Scholar
  18. 18.
    Bacon, D.F., Cheng, P., Rajan, V.T.: Controlling fragmentation and space consumption in the Metronome, a real-time garbage collector for Java. In: Proceedings of the Conference on Languages, Compilers, and Tools for Embedded Systems, San Diego, California, pp. 81–92 (June 2003)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Daniel Frampton
    • 1
  • David F. Bacon
    • 2
  • Perry Cheng
    • 2
  • David Grove
    • 2
  1. 1.Australian National University, Canberra ACTAustralia
  2. 2.IBM T.J. Watson Research, 19 Skyline Drive, Hawthorne, NY 10952USA

Personalised recommendations