1984 · 276 citations · 6 references
ComputingComputer ScienceHigh-performance ComputingCompilersData StructuresParallel ComputingCachingGarbage CollectionMemory Hierarchy DesignMemory ManagementMemory Subsystem DesignVirtual MemoryCopying Garbage CollectionEphemeral CopiesGarbage Collection AlgorithmsGarbage Collection OverheadIncremental Garbage CollectionVirtual Memory ManagementVirtual Memory Systems
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.
6
The Art of Computer Programming
W.J. Worlton · Nuclear Science and Engineering · 1968 · 2.3K citations
List processing in real time on a serial computer
Henry G. Baker · Communications of the ACM · 1978 · 592 citations · Full text
David Ungar · ACM SIGSOFT Software Engineering Notes · 1984 · 487 citations
A nonrecursive list compacting algorithm
C. J. Cheney · Communications of the ACM · 1970 · 392 citations · Full text