Abstract:
A stop-and-copy garbage collector updates one-bit reference counting with essentially no extra space and minimal memory cycles beyond the conventional collection algorithm. Any object that is uniquely referenced during a collection becomes a candidate for cheap recovery before the next one, or faster recopying then if it remains uniquely referenced. Since most objects stay uniquely referenced, subsequent collections run faster even if none are recycled between garbage collections. This algorithm extends to generation scavenging, it admits uncounted references from roots, and it corrects conservatively stuck counters, that result from earlier uncertainty whether references were unique. CR categories and Subject Descriptors: D.4.2 [Storage Management]: Allocation/Deallocation strategies; E.2 [Data Storage Representations]: Linked representations. General Term: Algorithms. Additional Key Words and Phrases: multiple reference bit, MRB. Research reported herein was sponsored, in part...
Citations
|
574
|
Compiling with Continuations
– Appel
- 1992
|
|
288
|
Generation scavenging: A non-disruptive high performance storage management reclamation algorithm
– Ungar
- 1984
|
|
217
|
A real-time garbage collector based on the lifetimes of objects
– Lieberman, Hewitt
- 1983
|
|
200
|
A nonrecursive list compacting algorithm
– Cheney
- 1970
|
|
173
|
On-the-fly garbage collection : an exercise in cooperation
– DIJKSTRA, LAMPORT, et al.
- 1976
|
|
144
|
The Art of Computer Programming: Fundamental Algorithms, volume 1
– Knuth
- 1975
|
|
104
|
An efficient, incremental, automatic garbage collector
– Deutsch, Bobrow
- 1976
|
|
99
|
A method for overlapping and erasure of lists
– Collins
- 1960
|
|
89
|
Lively linear lisp -- look ma, no garbage
– Baker
- 1992
|
|
81
|
Garbage collection of linked data structures
– COHEN
- 1981
|
|
80
|
Is there a use for linear logic
– Wadler
- 1991
|
|
72
|
Garbage collecting the world
– Lang, Queinnec, et al.
- 1992
|
|
47
|
Symmetric list processor
– WEIZENBAUM
- 1963
|
|
46
|
Shifting garbage collection overhead to compile time
– BARTH
- 1977
|
|
43
|
Garbage collection
– Appel
- 1991
|
|
41
|
A LISP garbage collector for virtual-memory computer systems
– Fenichel, Yochelson
- 1969
|
|
19
|
Multiple Reference Management in Flat GHC
– Chikayama, Kimura
- 1987
|
|
19
|
Some practical methods for rapid combinator reduction
– STOYE, CLARKE, et al.
- 1984
|
|
15
|
Variations on strictness analysis
– Bloss, Hudak
- 1986
|
|
14
|
Analysis of Pointer 'Rotation
– Suzuki
- 1982
|
|
11
|
Design for a multiprocessing heap with on-board reference counting
– Wise
- 1985
|
|
10
|
Reference counting can manage the circular environments of mutual recursion
– Friedman, Wise
- 1979
|
|
7
|
Optimization techniques using the MRB and their evaluation on the Multi--PSI/V2
– Inamura, Ichiyoshi, et al.
- 1989
|
|
6
|
CONS Should not CONS its Arguments
– Baker
- 1995
|
|
4
|
A note on shared list structure
– Clark
- 1978
|
|
4
|
Uniprocessor performance of reference-counting hardware heap
– Wise, Hess, et al.
- 1992
|
|
3
|
Evaluation of MRB Garbage Collection on Parallel Logic Programming Architectures
– Nishida, Kimura, et al.
- 1990
|
|
1
|
Cache-conscious copying collectors. OOPSLA '91 GC Workshop
– Baker
- 1991
|
|
1
|
Incremental garbage collection scheme in KL1 and its architectural support of PIM
– Kimura, Chikayama, et al.
- 1991
|
|
1
|
Morris's garbage compaction algorithm restores reference counts
– Wise
- 1979
|