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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Appel, A.W.: Simple generational garbage collection and fast allocation. Software Practice and Experience 19(2), 171–183 (1989)
Blackburn, S.M., McKinley, K.S.: Ulterior reference counting: fast garbage collection with-out a long wait. In: OOPSLA 2003, pp. 344–358 (2003)
Blackburn, S.M., Cheng, P., McKinley, K.S.: Oil and Water? High Performance Garbage Collection in Java with MMTk. In: ICSE 2004, pp. 137–146 (2004)
Boehm, H.: Reducing garbage collector cache misses. In: ISMM 2000, pp. 59–64 (2000)
Chilimbi, T.M., Larus, J.R.: Using generational garbage collection to implement cache-conscious data placement. In: ISMM 1998, pp. 37–48 (1998)
Cmelik, R., Keppel, D.: Shade: A fast instruction-set simulator for execution profiling. SIGMETRICS Performance Evaluation Review 22(1), 128–137 (1994)
Cooper, E., Nettles, S., Subramanian, I.: Improving the performance of SML garbage collection using application-specific virtual memory management. In: LFP 1992, pp. 43–52 (1992)
DaCapo benchmarks version beta050224, http://ali-www.cs.umass.edu/DaCapo/
Diwan, A., Tarditi, D., Moss, E.: Memory system performance of programs with intensive heap allocation. ACM Trans. Comput. Syst. 13(3), 244–273 (1995)
Dynamic SimpleScalar version 1.0.1, http://www-ali.cs.umass.edu/DSS/
Hill, M.D., Smith, A.J.: Evaluating Associativity in CPU Caches. IEEE Transactions on Computers 38(12) (December 1989)
IBM VisualAge Smalltalk, www-3.ibm.com/software/awdtools/smalltalk
Jikes Research Virtual Machine version 2.4.0, http://jikesrvm.sourceforge.net/
Jones, R., Lins, R.: Garbage Collection: Algorithms for automatic dynamic memory management. John Wiley & Sons, Chichester (1996)
Kessler, R.E., Hill, M.D.: Page placement algorithms for large real-indexed caches. ACM Trans. Comput. Syst. 10(4), 338–359 (1992)
Reddy, V.K.: Caching strategies for improving generational garbage collection in Smalltalk. MS Thesis, North Carolina State University (August 2003)
Reinhold, M.B.: Cache performance of garbage-collected programs. In: PLDI 1994, pp. 206–217 (1994)
Sawyer, R.K.: Page Pinning Improves Performance of Generational Garbage Collection. MS Thesis, North Carolina State University (March 2006)
Ungar, D.: Generation Scavenging: A non-disruptive high performance storage reclamation algorithm. In: SESPSDE 1984, pp. 157–167 (1984)
Wilson, P.R., Lam, M.S., Moher, T.G.: Caching considerations for generational garbage collection. In: LFP 1992, pp. 32–42 (1992)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Reddy, V.K., Sawyer, R.K., Gehringer, E.F. (2006). A Cache-Pinning Strategy for Improving Generational Garbage Collection. In: Robert, Y., Parashar, M., Badrinath, R., Prasanna, V.K. (eds) High Performance Computing - HiPC 2006. HiPC 2006. Lecture Notes in Computer Science, vol 4297. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11945918_15
Download citation
DOI: https://doi.org/10.1007/11945918_15
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-68039-0
Online ISBN: 978-3-540-68040-6
eBook Packages: Computer ScienceComputer Science (R0)