Oil and Water? High Performance Garbage Collection in Java with MMTk

  • Authors:
  • Stephen M. Blackburn;Perry Cheng;Kathryn S. McKinley

  • Affiliations:
  • Australian National University;IBM T.J. Watson Research Center;University of Texas at Austin

  • Venue:
  • Proceedings of the 26th International Conference on Software Engineering
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

Increasingly popular languages such as Java and C# requireefficient garbage collection. This paper presents thedesign, implementation, and evaluation of MMTk, a MemoryManagement Toolkit for and in Java. MMTk is an efficient, composable, extensible, and portable framework for building garbage collectors. MMTk uses design patternsand compiler cooperation to combine modularity and efficiency. The resulting system is more robust, easier to maintain, and has fewer defects than monolithic collectors. Experimentalcomparisons with monolithic Java and C implementationsreveal MMTk has significant performance advantagesas well. Performance critical system software typicallyuses monolithic C at the expense of flexibility. Our resultsrefute common wisdom that only this approach attainsefficiency, and suggest that performance critical softwarecan embrace modular design and high-level languages.