Software prefetching for mark-sweep garbage collection: hardware analysis and software redesign

Chen Yong Cher, Antony L. Hosking, T. N. Vijaykumar

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

Tracing garbage collectors traverse references from live program variables, transitively tracing out the closure of live objects. Memory accesses incurred during tracing are essentially random: a given object may contain references to any other object. Since application heaps are typically much larger than hardware caches, tracing results in many cache misses. Technology trends will make cache misses more important, so tracing is a prime target for prefetching.Simulation of Java benchmarks running with the Boehm-De-mers-Weiser mark-sweep garbage collector for a projected hardware platform reveal high tracing overhead (up to 65% of elapsed time), and that cache misses are a problem. Applying Boehm's default prefetching strategy yields improvements in execution time (16% on average with incremental/generational collection for GC-intensive benchmarks), but analysis shows that his strategy suffers from significant timing problems: prefetches that occur too early or too late relative to their matching loads. This analysis drives development of a new prefetching strategy that yields up to three times the performance improvement of Boehm's strategy for GC-intensive benchmark (27% average speedup), and achieves performance close to that of perfect timing ie, few misses for tracing accesses) on some benchmarks. Validating these simulation results with live runs on current hardware produces average speedup of 6% for the new strategy on GC-intensive benchmarks with a GC configuration that tightly controls heap growth. In contrast, Boehm's default prefetching strategy is ineffective on this platform.
Original languageEnglish
Title of host publicationASPLOS XI
Subtitle of host publicationProceedings of the 11th international conference on Architectural support for programming languages and operating systems
PublisherAssociation for Computing Machinery
Pages199-210
DOIs
Publication statusPublished - 7 Oct 2004
Externally publishedYes
Event11th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS XI - Boston, MA, United States
Duration: 9 Oct 200413 Oct 2004

Conference

Conference11th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS XI
Country/TerritoryUnited States
CityBoston, MA
Period9/10/0413/10/04

Fingerprint

Dive into the research topics of 'Software prefetching for mark-sweep garbage collection: hardware analysis and software redesign'. Together they form a unique fingerprint.

Cite this