Concepedia

Garbage collection in a large LISP system

David A. Moon

1984 · 276 citations · 6 references

DOIFull text

Open access

Concepts

Abstract

This paper discusses garbage collection techniques used in a high-performance Lisp implementation with a large virtual memory, the Symbolics 3600. Particular attention is paid to practical issues and experience. In a large system problems of scale appear and the most straightforward garbage-collection techniques do not work well. Many of these problems involve the interaction of the garbage collector with demand-paged virtual memory. Some of the solutions adopted in the 3600 are presented, including incremental copying garbage collection, approximately depth-first copying, ephemeral objects, tagged architecture, and hardware assists. We discuss techniques for improving the efficiency of garbage collection by recognizing that objects in the Lisp world have a variety of lifetimes. The importance of designing the architecture and the hardware to facilitate garbage collection is stressed.

References

6

The Art of Computer Programming

W.J. Worlton · Nuclear Science and Engineering · 1968

+17

2.3K citations

592 citations

570 citations

Generation Scavenging

David Ungar · ACM SIGSOFT Software Engineering Notes · 1984

+13

487 citations