Age-Oriented Concurrent Garbage Collection

  • Harel Paz
  • Erez Petrank
  • Stephen M. Blackburn
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3443)


Generational collectors are well known as a tool for shortening pause times incurred by garbage collection and for improving garbage collection efficiency. In this paper, we investigate how to best use generations with on-the-fly collectors. On-the-fly collectors run concurrently with the program threads and induce very short program pauses. Thus, the motivation for incorporating generations is focused at improving the throughput; pauses do not matter, since they are already very short. We propose a new collection approach, denoted age-oriented collection, for exploiting the generational hypothesis to obtain better efficiency. This approach is particularly useful when reference counting is used to collect the old generation, yielding a highly efficient and non-obtrusive on-the-fly collector. Finally, an implementation is provided demonstrating how the age-oriented collector outperforms both the non-generational and the generational collectors’ efficiency.


Young Generation Garbage Collection Pause Time Garbage Collector Reference Counting 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Alpern, B., Attanasio, C.R., Cocchi, A., Lieber, D., Smith, S., Ngo, T., Barton, J.J., Hummel, S.F. , Sheperd, C., Mergen, M.: Implementing Jalapeño in Java. ACM Conference on Object-Oriented Systems, Languages and Applications 34(10), 314–324 (1999)Google Scholar
  2. 2.
    Appel, A.W.: Simple generational garbage collection and fast allocation. Software Practice and Experience 19(2), 171–183 (1989)CrossRefMathSciNetGoogle Scholar
  3. 3.
    Azatchi, H., Levanoni, Y., Paz, H., Petrank, E.: An on-the-fly mark and sweep garbage collector based on sliding view. In: OOPSLA [21]Google Scholar
  4. 4.
    Azatchi, H., Petrank, E.: Integrating generations with advanced reference counting garbage collectors. In: Hedin, G. (ed.) CC 2003. LNCS, vol. 2622, pp. 185–199. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  5. 5.
    Bacon, D.F., Attanasio, C.R., Lee, H.B., Rajan, V.T., Smith Java, S.: without the coffee breaks: A nonintrusive multiprocessor garbage collector. In: Proceedings of Conference on Prog. Lang. Design and Impl. (2001)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)zbMATHCrossRefGoogle Scholar
  7. 7.
    Blackburn, S.M., Jones, R., McKinley, K.S., Moss., J.E.B.: Beltway: Getting around garbage collection gridlock. In: Proceedings of SIGPLAN 2002 Conference on Prog. Lang. Design and Impl., pp. 153–164 (2002)Google Scholar
  8. 8.
    Blackburn, S.M., McKinley, K.S.: Ulterior reference counting: Fast garbage collection without a long wait. In: OOPSLA [21]Google Scholar
  9. 9.
    Boehm, H.-J., Demers, A.J., Shenker, S.: Mostly parallel garbage collection. ACM SIGPLAN Notices 26(6), 157–164 (1991)CrossRefGoogle Scholar
  10. 10.
    Demers, A., Weiser, M., Hayes, B., Bobrow, D.G., Shenker, S.: Combining generational and conservative garbage collection: Framework and implementations. In: 17 ACM Symp. on Prin. of Prog. Lang., pp. 261–269 (1990)Google Scholar
  11. 11.
    Dijkstra, E.W., Lamport, L., Martin, A.J., Scholten, C.S., Steffens, E.F.M.: On-the-fly garbage collection: An exercise in cooperation. Communications of the ACM 21(11), 965–975 (1978)CrossRefGoogle Scholar
  12. 12.
    Doligez, D., Gonthier, G.: Portable, unobtrusive garbage collection for multiprocessor systems. In: 21 ACM Symp. on Principles of Prog. Lang. (1994)Google Scholar
  13. 13.
    Doligez, D., Leroy, X.: A concurrent generational garbage collector for a multi-threaded implementation of ML. In: The Twentieth ACM Symp. on Principles of Prog. Lang., January 1993, pp. 113–123 (1993)Google Scholar
  14. 14.
    Domani, T., Kolodner, E., Petrank, E.: A generational on-the-fly garbage collector for Java. In: Proceedings of SIGPLAN 2000 Conference on Programming Languages Design and Implementation (2000)Google Scholar
  15. 15.
    Endo, T., Taura, K., Yonezawa, A.: A scalable mark-sweep garbage collector on large-scale shared-memory machines. In: Proceedings of High Performance Computing and Networking, SC 1997 (1997)Google Scholar
  16. 16.
    Flood, C., Detlefs, D., Shavit, N., Zhang, C.: Parallel garbage collection for shared memory multiprocessors. In: Usenix Java Virtual Machine Research and Technology Symposium (JVM 2001) (April 2001)Google Scholar
  17. 17.
    Hudson, R.L., Moss, J.E.B.: Sapphire: Copying GC without stopping the world. In: Joint ACM Java Grande — ISCOPE 2001 Conference (2001)Google Scholar
  18. 18.
    Kolodner, E.K., Petrank, E.: Parallel copying garbage collection using delayed allocation. In: Parallel Processing Letters, June 2004, vol. 14 (2004)Google Scholar
  19. 19.
    Levanoni, Y., Petrank, E.: An on-the-fly reference counting garbage collector for Java. In: ACM Conf. on Object-Oriented Systems, Lang. & Appl. (2001)Google Scholar
  20. 20.
    Lieberman, H., Hewitt, C.E.: A real-time garbage collector based on the lifetimes of objects. Communications of the ACM 26(6), 419–429 (1983)CrossRefGoogle Scholar
  21. 21.
    OOPSLA 2003 ACM Conf. on Object-Oriented Systems, Lang. & Applications (2003)Google Scholar
  22. 22.
    Paz, H., Petrank, E.: Age-oriented garbage collection. Technical Report CS-2003-08, Technion, Israel (October 2003),
  23. 23.
    Printezis, T., Detlefs, D.: A generational mostly-concurrent garbage collector. In: Proceedings of the Second International Symp. on Memory Management. ACM SIGPLAN Notices, vol. 36(1) ( October 2000)Google Scholar
  24. 24.
    SPEC Benchmarks. Standard Performance Evaluation Corporation. (1998, 2000),
  25. 25.
    Steele, G.L.: Multiprocessing compactifying garbage collection. Communications of the ACM 18(9), 495–508 (1975)zbMATHCrossRefGoogle Scholar
  26. 26.
    Steele, G.L.: Corrigendum: Multiprocessing compactifying garbage collection. Communications of the ACM 19(6), 354 (1976)Google Scholar
  27. 27.
    Ungar, D.M.: Generation scavenging: A non-disruptive high performance storage reclamation algorithm. ACM SIGPLAN Notices 19(5), 157–167 (1984)CrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Harel Paz
    • 1
  • Erez Petrank
    • 1
  • Stephen M. Blackburn
    • 2
  1. 1.Dept. of Computer ScienceTechnionHaifaIsrael
  2. 2.Dept. of Computer ScienceANUCanberraAustralia

Personalised recommendations