Summary: Simple Generational Garbage Collection and Fast Allocation
Andrew W. Appel
Department of Computer Science
Princeton, NJ 08544
revised September 1988
Generational garbage collection algorithms achieve efficiency because newer
records point to older records; the only way an older record can point to a newer record is
by a store operation to a previouslycreated record, and such operations are rare in many
languages. A garbage collector that concentrates just on recently allocated records can
take advantage of this fact.
Such a garbage collector can be so efficient that the allocation of records costs more than
their disposal. A scheme for quick record allocation attacks this bottleneck.
Many garbagecollected environments don't know when to ask the operating system for
more memory. A robust heuristic solves this problem.
This paper presents a simple, efficient, lowoverhead version of generational garbage col
lection with fast allocation, suitable for implementation in a Unix environment.
Keywords: garbage collection, dynamic memory allocation