Download:
|
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
|