Part of the book series:Lecture Notes in Computer Science ((LNCS,volume 2622))
Included in the following conference series:
1236Accesses
Abstract
We study an incorporation of generations into a modern reference counting collector. We start with the two on-the-fly collectors suggested by Levanoni and Petrank: a reference counting collector and a tracing (mark and sweep) collector. We then propose three designs for combining them so that the reference counting collector collects the young generation or the old generation or both. Our designs maintain the good properties of the Levanoni-Petrank collector. In particular, it is adequate for multithreaded environment and a multiprocessor platform, and it has an effcient write barrier with no synchronization operations. To the best of our knowledge, the use of generations with reference counting has not been tried before.
We have implemented these algorithms with the Jikes JVM and compared them against the concurrent reference counting collector supplied with the Jikes package. As expected, the best combination is the one that lets the tracing collector work on the young generation (where most objects die) and the reference counting work on the old generation (where many objects survive). Matching the expected survival rate with the nature of the collector yields a large improvement in throughput while maintaining the pause times around a couple of milliseconds.
Most of this work was done while the author was at the Computer Science Dept., Technion - Israel Institue of Technology.
This research was supported by the E. AND J. BISHOP RESEARCH FUND and by the FUND FOR PROMOTION OF RESEARCH at the Technion.
Chapter PDF
Similar content being viewed by others
References
Hezi Azatchi and Erez Petrank. Integrating Generations with Advanced Reference Counting Garbage Collectors. Technical Report, Faculty of Computer Science, Technion, Israel Institute of Technology, October 2002. Available athttp://www.cs.technion.ac.il/∼erez/publications.html.
Alan Demers, Mark Weiser, Barry Hayes, Hans Boehm, Daniel G. Bobrow, and Scott Shenker. Combining generational and conservative garbage collection: Framework and implementations. In Conference Record of theSeventeenth Annual ACM Symposium on Principles of Programming Languages, ACM SIGPLAN Notices, January 1990. ACM Press, pages 261–269.
D. Bacon, C. Attanasio, H. Lee, V. Rajan, and S. Smith. Java without the coffee breaks: A nonintrusive multiprocessor garbage collector.ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), Snowbird, Utah, June 20–22 2001.
D. Bacon and V. Rajan. Concurrent Cycle Collection in Reference Counted Systems.Fifteenth European Conference on Object-Oriented Programming (ECOOP), University Eötvös Lorand, Budapest, Hungary, June 18–22 2001.
Henry G. Baker. List processing in real-time on a serial computer.Communications of the ACM, 21(4):280–94, 1978.
Henry G. Baker. Minimising reference count updating with deferred and anchored pointers for functional data structures.ACM SIGPLAN Notices, 29(9), September 1994.
Hans-Juergen Böhm, Alan J. Demers, and Scott Shenker. Mostly parallel garbage collection. collector.ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI, 1991), ACM SIGPLAN Notices, 26(6):157–164, 1991.
George E. Collins. A method for overlapping and erasure of lists.Communications of the ACM, 3(12):655–657, December 1960.
John DeTreville. Experience with concurrent garbage collectors for Modula-2+. Technical Report 64, DEC Systems Research Center, Palo Alto, CA, August 1990.
L. Peter Deutsch and Daniel G. Bobrow. An efficient incremental automatic garbage collector.Communications of the ACM, 19(9):522–526, September 1976.
Edsgar W. Dijkstra, Leslie Lamport, A. J. Martin, C. S. Scholten, and E. F. M. Steffens. On-the-fly garbage collection: An exercise in cooperation.Communications of the ACM, 21(11):965–975, November 1978.
Damien Doligez and Georges Gonthier. Portable, unobtrusive garbage collection for multiprocessor systems. InPOPL 1994.
Damien Doligez and Xavier Leroy. A concurrent generational garbage collector for a multi-threaded implementation of ML. InPOPL 1993.
Tamar Domani, Elliot K. Kolodner, Ethan Lewis, Elliot E. Salant, Katherine Barabash, Itai Lahan, Yossi Levanoni, Erez Petrank, and Igor Yanover. Implementing an On-the-fly Garbage Collector for Java.ISMM, 2000.
Tamar Domani, Elliot K. Kolodner, and Erez Petrank. Generational On-the-fly Garbage Collector for Java.ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation (PLDI) 2000.
Shinichi Furusou, Satoshi Matsuoka, and Akinori Yonezawa.Parallel conservative garbage collection with fast allocation. In Paul R. Wilson and Barry Hayes, editors, GC workshop at OOPSLA, October 1991.
Yossi Levanoni and Erez Petrank. An On-the-fly Reference Counting Garbage Collector for Java,proccedings of the ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA’01). See also the Technical Report CS-0967, Dept. of Computer Science, Technion, Nov. 1999.
H. Lieberman and C. E. Hewitt. A Real Time Garbage Collector Based on the Lifetimes of Objects.Communicaitons of the ACM, 26(6), pages 419–429, 1983.
Young G. Park and Benjamin Goldberg. Static analysis for optimising reference counting.IPL, 55(4):229–234, August 1995.
Manoj Plakal and Charles N. Fischer. Concurrent Garbage Collection Using Program Slices on Multithreaded Processors.
Tony Printezis and David Detlefs. A generational mostly-concurrent garbage collector.ISMM 2000.
David J. Roth and David S. Wise. One-bit counts between unique and sticky.ACM SIGPLAN Notices, pages 49–56, October 1998. ACM Press.
D. Ungar. Generation Scavenging: A Non-disruptive High Performance Storage Reclamation Algorithm. ACM SIGPLAN Notices Vol. 19,No. 5, May 1984, pp. 157–167.
J. Weizenbaum. Symmetric list processor.Communications of the ACM, 6(9):524–544, September 1963.
David S. Wise. Stop and one-bit reference counting. Technical Report 360, Indiana University, Computer Science Department, March 1993.
Author information
Authors and Affiliations
IBM Haifa Research Labs, Haifa University Campus, Mount Carmel, 31905, Haifa, Israel
Hezi Azatchi
Dept. of Computer Science, Technion - Israel Institute of Technology, 32000, Haifa, Israel
Erez Petrank
- Hezi Azatchi
You can also search for this author inPubMed Google Scholar
- Erez Petrank
You can also search for this author inPubMed Google Scholar
Editor information
Editors and Affiliations
Department of Computer Science, Lund University, Box 118, 221 00, Lund, Sweden
Görel Hedin
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Azatchi, H., Petrank, E. (2003). Integrating Generations with Advanced Reference Counting Garbage Collectors. In: Hedin, G. (eds) Compiler Construction. CC 2003. Lecture Notes in Computer Science, vol 2622. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-36579-6_14
Download citation
Share this paper
Anyone you share the following link with will be able to read this content:
Sorry, a shareable link is not currently available for this article.
Provided by the Springer Nature SharedIt content-sharing initiative