A cache-pinning strategy for improving generational garbage collection

  • Authors:
  • Vimal K. Reddy;Richard K. Sawyer;Edward F. Gehringer

  • Affiliations:
  • Department of Electrical and Computer Engineering, North Carolina State University, Raleigh, NC;Department of Electrical and Computer Engineering, North Carolina State University, Raleigh, NC;Department of Electrical and Computer Engineering, North Carolina State University, Raleigh, NC

  • Venue:
  • HiPC'06 Proceedings of the 13th international conference on High Performance Computing
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

In generational garbage collection, the youngest generation of the heap is frequently traversed during garbage collection. Due to randomness of the traversal, memory access patterns are unpredictable and cache performance becomes crucial to garbage-collection efficiency. Our proposal to improve cache performance of garbage collection is to “pin” the youngest generation (sometimes called the nursery) in the cache, converting all nursery accesses to cache hits. To make the nursery fit inside the cache, we reduce its size, and, to prevent its eviction from the cache, we configure the operating system's page-fault handler to disallow any page allocation that would cause cache conflicts to the nursery. We evaluated our scheme on a copying-style generational garbage collector using IBM VisualAge Smalltalk and Jikes research virtual machine. Our simulation results indicate that the increase in frequency of garbage collection due to a smaller nursery is overshadowed by gains of converting all nursery accesses to cache hits.