MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Java without the coffee breaks: A nonintrusive multiprocessor garbage collector (2001) [34 citations — 7 self]

Download:
Download as a PDF | Download as a PS
by David F. Bacon, Clement R. Attanasio, Han B. Lee, V. T. Rajan, Stephen Smith
In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) (Snowbird
http://www.research.ibm.com/people/d/dfb/papers/Bacon00Java.ps
Add To MetaCart

Abstract:

The deployment of Java as a concurrent programming language has created a critical need for high-performance, concurrent, and incremental multiprocessor garbage collection. We present the Recycler, a fully concurrent pure reference counting garbage collector that we have implemented in the Jalape~no Java virtual machine running on shared memory multiprocessors. While a variety of multiprocessor collectors have been proposed and some have been implemented, experimental data is limited and there is little quantitative basis for comparison between dierent algorithms. We present measurements of the Recycler and compare it against a non-concurrent but parallel load-balancing mark-and-sweep collector (that we also implemented in Jalape~no), and evaluate the classical tradeo between response time and throughput. When processor or memory resources are limited, the Recycler runs at about 90 % of the speed of the mark-and-sweep collector. However, with an extra processor to run collection and with a moderate amount of memory headroom, the Recycler is able to operate without ever blocking the mutators and achieves a maximum measured mutator delay of only 6 milliseconds for our benchmarks. End-to-end execution time is usually increased only slightly, but is sometimes substantially better or worse, presumably due to locality effects.

Citations

167 Steffens “On−the−fly Garbage Collection: An Exercise in Cooperation – Dijkstra, Lamport, et al. - 1978
148 Dynamic storage allocation: A survey and critical review – Wilson, Johnstone, et al. - 1995
136 Real-time concurrent collection on stock multiprocessors – Appel, Ellis, et al. - 1988
111 Adaptive optimization in the Jalapeño jvm – Arnold, Fink, et al. - 2000
101 An efficient, incremental, automatic garbage collector – Deutsch, Bobrow - 1976
99 A concurrent, generational garbage collector for a multithreaded implementation of ML – Doligez, Leroy - 1993
98 A method for overlapping and erasure of lists – Collins - 1960
71 Implementing Jalapeño in Java – Alpern, Attanasio, et al. - 1999
64 Jr.: Multiprocessing Compactifying Garbage Collection – Steele - 1975
56 A parallel, real-time garbage collector – Cheng, Belloch - 2001
51 Generational stack collection and profile-driven pretenuring – Cheng, Harper, et al. - 1998
47 Garbage Collection – Jones, Lins - 1996
43 Adding Garbage Collection and Runtime Types to a Strongly Typed – Rovner - 1985
36 An efficient parallel garbage collection system and its correctness proof – Kung, Song - 1977
33 A concurrent copying garbage collector for languages that distinguish (im)mutable data – Huelsbergen, Larus - 1993
32 Experience with concurrent garbage collectors for Modula-2 – DeTreville - 1990
28 Managing re-entrant structures using reference counts – BOBROW - 1980
24 Portable, Unobtrusive Garbage Collection for Multiprocessor Systems – Doligez, Gonthier - 1994
23 Very concurrent mark-&- sweep garbage collection without fine-grain synchronization – Huelsbergen, Winterbottom - 1998
22 Cyclic reference counting with lazy mark-scan – LINS - 1992
21 Garbage collection with multiple processes: an exercise in parallelism – LAMPORT - 1976
20 Concurrent cycle collection in reference counted systems – Bacon, Rajan
18 Reference count garbage collection – CHRISTOPHER - 1984
12 A multi-processor shared memory architecture for parallel cyclic reference counting – LINS - 1992
10 Real-time garbage collection – NETTLES, O'TOOLE - 1993
4 Generational Stack Collection and Pro Pretenuring – Cheng, Harper, et al. - 1998
4 A Generational On-the- Garbage Collector for Java – Domani, Kolodner, et al. - 2000
4 Cyclic reference counting with local mark-scan – INEZ, D, et al. - 1990
3 Strongly-connected component algorithms for concurrent cycle collection – BACON, KOLODNER, et al. - 2001
1 Personal communication. Hewlett-Packard Laboratories – BOEHM - 2000
1 Implementing Jalapefio in Java – ALPERN, AL - 1999