Reducing garbage collector cache misses

  • Authors:
  • Hans-J. Boehm

  • Affiliations:
  • Hewlett-Packard Laboratories, 1501 Page Mill Rd., MS 1U-17, Palo Alto, CA

  • Venue:
  • Proceedings of the 2nd international symposium on Memory management
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

Abstract

Cache misses are currently a major factor in the cost of garbage collection, and we expect them to dominate in the future. Traditional garbage collection algorithms exhibit relatively little temporal locality; each live object in the heap is likely to be touched exactly once during each garbage collection. We measure two techniques for dealing with this issue: prefetch-on-grey, and lazy sweeping. The first of these is new in this context. Lazy sweeping has been in common use for a decade. It was introduced as a mechanism for reducing paging and pause times; we argue that it is also crucial for eliminating cache misses during the sweep phase.Our measurements are obtained in the context of a non-moving garbage collector. Fully copying garbage collection inherently requires more traffic through the cache, and thus probably also stands to benefit substantially from something like the prefetch-on-grey technique. Generational garbage collection may reduce the benefit of these techniques for some applications, but experiments with a non-moving generational collector suggest that they remain quite useful.