A space-incremental garbage collector performs marking operations that are
usually separated by several collection increments. It uses the marking
results to compute collection-efficiency metrics for regions into which
it treats the heap as divided. It bases its selection of regions for
successive increments' collection sets on the metrics' values, whose
computations also depend on the sizes of the regions' "remembered sets,"
i.e., on the lists of locations where references to objects in those
regions have been observed. Although the remembered-set sizes therefore
potentially change between collection increments, the collector
re-computes metrics in most collection increments for only a subset of
the regions. It selects the subset in accordance with a sorting of all
regions that it performed at the end of the most recent completed marking
operation.