Immix: A Mark-Region Garbage Collector with Space Efficiency, Fast Collection, and Mutator Performance
- Added on 2023-08-29
- Page: https://users.cecs.anu.edu.au/~steveb/pubs/papers/immix-pldi-2008.pdf
- See on Internet Archive
- #lisp #pdf #gc #immix
Stephen M. Blackburn - Australian National University - Steve.Blackburn@anu.edu.au
Kathryn S. McKinley - The University of Texas at Austin - mckinley@cs.utexas.edu
Programmers are increasingly choosing managed languages for modern applications, which tend to allocate many short-to-medium lived small objects. The garbage collector therefore directly determines program performance by making a classic space-time tradeoff that seeks to provide space efficiency, fast reclamation, and mutator performance. The three canonical tracing garbage collectors: semi-space, mark-sweep, and mark-compact each sacrifice one objective. This paper describes a collector family, called mark-region, and introduces opportunistic defragmentation, which mixes copying and marking in a single pass. Combining both, we implement immix, a novel high performance garbage collector that achieves all three performance objectives. The key insight is to allocate and reclaim memory in contiguous regions, at a coarse block grain when possible and otherwise in groups of finer grain lines. We show that immix outperforms existing canonical algorithms, improving total application performance by 7 to 25% on average across 20 benchmarks. As the mature space in a generational collector, immix matches or beats a highly tuned generational collector, e.g. it improves jbb2000 by 5%. These innovations and the identification of a new family of collectors open new opportunities for garbage collector design.
Categories and Subject Descriptors D.3.4 [Programming Languages]: Processors—Memory management (garbage collection)
General Terms Algorithms, Experimentation, Languages, Performance, Measurement
Keywords Fragmentation, Free-List, Compact, Mark-Sweep, SemiSpace, Mark-Region, Immix, Sweep-To-Region, Sweep-To-Free-List