language: en

Comparing Mostly-Copying and Mark-Sweep Conservative Collection *

Frederick Smith
Cornell University
fms@cs.cornell.edu
Greg Morrisett
Cornell University
jgm@cs.cornell.edu

Abstract Many high-level language compilers generate C code and then invoke a C compiler for code generation. To date, most of these compilers link the resulting code against a conservative mark-sweep garbage collector in order to reclaim unused memory. We introduce a new collector, MCC, based on an extension of mostly-copying collection. We analyze the various design decisions made in MCC and provide a performance comparison to the most widely used conservative mark-sweep collector (the Boehm-Demers-Weiser collector). Our results show that a good mostly-copying collector can outperform a mature highly-optimized mark-sweep collector when physical memory is large relative to the live data. A surprising result of our analysis is that cache behavior can have a greater impact on overall performance than either collector time, or allocation code.

1 Overview