Comparing mark-and sweep and stop-and-copy garbage collection

Stop-and-copy garbage collection has been preferred to mark-and-sweep collection in the last decade because its collection time is proportional to the size of reachable data and not to the memory size. This paper compares the CPU overhead and the memory requirements of the two collection algorithms extended with generations, and finds that mark-and-sweep collection requires at most a small amount of additional CPU overhead (3-6%) but, requires an average of 20% (and up to 40%) less memory to achieve the same page fault rate. The comparison is based on results obtained using trace-driven simulation with large Common Lisp programs.

[1]  John McCarthy,et al.  Recursive functions of symbolic expressions and their computation by machine, Part I , 1960, Commun. ACM.

[2]  Robert Fenichel,et al.  A LISP garbage-collector for virtual-memory computer systems , 1969, CACM.

[3]  Chris J. Cheney A nonrecursive list compacting algorithm , 1970, Commun. ACM.

[4]  H. D. Baecker Garbage collection for virtual memory computer systems , 1972, CACM.

[5]  Ian A. Newman,et al.  Alternative approaches to multiprocessor garbage collection , 1982, ICPP.

[6]  Henry Lieberman,et al.  A real-time garbage collector based on the lifetimes of objects , 1983, CACM.

[7]  Alexandru Nicolau,et al.  Comparison of Compacting Algorithms for Garbage Collection , 1983, TOPL.

[8]  D. Julian M. Davies Memory occupancy patterns in garbage collection systems , 1984, CACM.

[9]  David A. Moon,et al.  Garbage collection in a large LISP system , 1984, LFP '84.

[10]  David M. Ungar,et al.  Generation Scavenging: A non-disruptive high performance storage reclamation algorithm , 1984, SDE 1.

[11]  Benjamin G. Zorn,et al.  SPUR Lisp: Design and Implementation , 1987 .

[12]  S. S. Rath,et al.  Conference proceedings , 1999, 1987 IEEE Applied Power Electronics conference and Exposition.

[13]  Ifor Williams,et al.  The design and evaluation of a high-performance smalltalk system , 1988 .

[14]  Frank Jackson,et al.  Tenuring policies for generation-based storage reclamation , 1988, OOPSLA '88.

[15]  Andrew W. Appel,et al.  RETROSPECTIVE : Real-time Concurrent Collection on Stock Multiprocessors , 2004 .

[16]  Robert Courts,et al.  Improving locality of reference in a garbage-collecting memory management system , 1988, CACM.

[17]  Patrick Sobalvarro,et al.  A Lifetime-based Garbage Collector for LISP Systems on General- Purpose Computers , 1988 .

[18]  Robert Allen Shaw,et al.  Empirical analysis of a LISP system , 1988 .

[19]  Daniel G. Bobrow,et al.  Combining generational and conservative garbage collection: framework and implementations , 1989, POPL '90.

[20]  Andrew W. Appel,et al.  Simple generational garbage collection and fast allocation , 1989, Softw. Pract. Exp..

[21]  Chih-Jui Peng,et al.  Cache Memory Design Considerations to Support Languages with Dynamic Heap Allocation , 1989 .

[22]  Benjamin G. Zorn,et al.  Comparative performance evaluation of garbage collection algorithms , 1989 .