Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/998675.999420acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

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

Published: 23 May 2004 Publication History

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.

References

[1]
{1} B. Alpern et al. The Jalapeño virtual machine. IBM Systems Journal, 39(1):211-238, February 2000.
[2]
{2} A.W. Appel. Simple generational garbage collection and fast allocation. Software Practice and Experience, 19(2):171-183, 1989.
[3]
{3} M. Arnold, S.J. Fink, D. Grove, M. Hind, and P. Sweeney. Adaptive optimization in the Jalapeño JVM. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications , pages 47-65, Minneapolis, MN, October 2000.
[4]
{4} C.R. Attanasio, D.F. Bacon, A. Cocchi, and S. Smith. A comparative evaluation of parallel garbage collectors. In Languages and Compilers for Parallel Computing, Lecture Notes in Computer Science. Springer-Verlag, 2001.
[5]
{5} G. Attardi and T. Flagella. A customizable memory management framework. In Proceedings of the USENIX C++ Conference, Cambridge, Massachussetts, 1994.
[6]
{6} G. Attardi, T. Flagella, and P. Iglio. A customizable memory management framework for C++. Software Practice & Experience, 28(11):1143-1183, 1998.
[7]
{7} H. Azatchi and E. Petrank. Integrating generations with advanced reference counting garbage collectors. In International Conference on Compiler Construction, Warsaw, Poland, Apr. 2003.
[8]
{8} D.F. Bacon, C.R. Attanasio, H.B. Lee, V.T. Rajan, and S. Smith. Java without the coffee breaks: A nonintrusive multiprocessor garbage collector. In ACM SIGPLAN Conference on Programming Languages Design and Implementation, pages 92-103, Snowbird, UT, June 2001.
[9]
{9} D.F. Bacon, P. Cheng, and V.T. Rajan. A real-time garbage collector with low overhead and consistent utilization. In ACM Symposium on the Principles of Programming Languages, pages 285-294, New Orleans, LA, Jan. 2003.
[10]
{10} D.F. Bacon and V.T. Rajan. Concurrent cycle collection in reference counted systems. In J.L. Knudsen, editor, Proc. of the 15th ECOOP, volume 2072 of Lecture Notes in Computer Science, pages 207-235. Springer-Verlag, 2001.
[11]
{11} E.D. Berger, B.G. Zorn, and K.S. McKinley. Composing high-performance memory allocators. In ACM SIGPLAN Conference on Programming Languages Design and Implementation, pages 114- 124, Salt Lake City, UT, June 2001.
[12]
{12} S.M. Blackburn, P. Cheng, and K.S. McKinley. Myths and realities: The performance impact of garbage collection. In SIGMETRICS, NY, NY, June 2004.
[13]
{13} S.M. Blackburn, R.E. Jones, K.S. McKinley, and J.E.B. Moss. Beltway: Getting around garbage collection gridlock. In Proc. of SIGPLAN 2002 Conference on PLDI, pages 153-164, Berlin, Germany, June 2002.
[14]
{14} S.M. Blackburn and K.S. McKinley. In or out? Putting write barriers in their place. In ACM International Symposium on Memory Management, pages 175-183, Berlin, Germany, June 2002.
[15]
{15} S.M. Blackburn and K.S. McKinley. Ulterior reference counting: Fast garbage collection without a long wait. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications , pages 244-358, Anaheim, CA, Oct. 2003.
[16]
{16} G. Bracha and W. Cook. Mixin-based inheritance. In ACM Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications, pages 303-311, Ottawa, Canada, 1990.
[17]
{17} P. Cheng and G. Blelloch. A parallel, real-time garbage collector. In ACM SIGPLAN Conference on Programming Languages Design and Implementation, pages 125-136, Snowbird, UT, June 2001.
[18]
{18} J. Dean, G. DeFouw, D. Grove, V. Litinov, and C. Chambers. Vortex: An optimizing compiler for object-oriented languages. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 83-100, San Jose, CA, Oct. 1996.
[19]
{19} L.P. Deutsch and D.G. Bobrow. An efficient incremental automatic garbage collector. Communications of the ACM, 19(9):522- 526, September 1976.
[20]
{20} E. Dijkstra, L. Lamport, A. Martin, C. Scholten, and E. Steffens. On-the-fly garbage collection: An exercise in cooperation. Communications of the ACM, 21(11): 966-975, September 1978.
[21]
{21} R. Fitzgerald and D. Tarditi. The case for profile-directed selection of garbage collectors. In ACM International Symposium on Memory Management, pages 111-120, Minneapolis, MN, Oct. 2000.
[22]
{22} B. Henderson-Sellers. Object-oriented metrics--measures of complexity . Prentice-Hall, New Jersey, 1996.
[23]
{23} R. Hudson, J.E.B. Moss, A. Diwan, and C.F. Weight. A language-independent garbage collector toolkit. Technical Report TR-91-47, Dept. of Computer Science, University of Massachusetts, Amherst, Sept. 1991.
[24]
{24} D. Ingalls, T. Kaehler, J. Maloney, S. Wallace, and A. Kay. Back to the future: the story of Squeak, a practical Smalltalk written in itself. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 318-326, Atlanta, GA, Oct.1997.
[25]
{25} R.E. Jones and R.D. Lins. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, July 1996.
[26]
{26} Y. Levanoni and E. Petrank. An on-the-fly reference counting garbage collector for Java. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 367- 380, Tampa, FL, Oct. 2001.
[27]
{27} H. Lieberman and C.E. Hewitt. A real time garbage collector based on the lifetimes of objects. Communications of the ACM, 26(6):419- 429, 1983.
[28]
{28} T.J. McCabe. A complexity measure. IEEE Transactions on Software Engineering, 2(4):308-320, Dec. 1976.
[29]
{29} K. Palacz, J. Baker, C. Flack, C. Grothoff, H. Yamauchi, and J. Vitek. Engineering a customizable intermediate representation. In ACM SIGPLAN 2003 Workshop on Interpreters, Virtual Machines and Emulators , San Diego, CA, June 2003.
[30]
{30} N. Sachindran and J.E.B. Moss. Mark-Copy: Fast copying GC with less space overhead. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 326-343, Anahiem, CA, Oct. 2003.
[31]
{31} D. Stefanovi¿, M. Hertz, S.M. Blackburn, K. McKinley, and J. Moss. Older-first garbage collection in practice: Evaluation in a Java virtual machine. In Memory System Performance, pages 175-184, June 2002.
[32]
{32} D. Stefanovi¿, K. McKinley, and J. Moss. Age-based garbage collection. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 370-381, Denver, CO, Nov. 1999.
[33]
{33} D. Stutz, T. Neward, and G. Shilling. Shared Source CLI Essentials. O'Reilly, 2003.
[34]
{34} D.M. Ungar. Generation scavenging: A non-disruptive high performance storage reclamation algorithm. In ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, pages 157-167, April 1984.
[35]
{35} K.-P. Vo. Vmalloc: A general and efficient memory allocator. Software Practice & Experience, 26(3):1-18, 1996.
[36]
{36} P.R. Wilson, M.S. Lam, and T.G. Moher. Effective static-graph reorganization to improve locality in garbage-collected systems. In ACM SIGPLAN Conference on Programming Languages Design and Implementation, pages 177-191, Toronto, Canada, June 1991.
[37]
{37} S.A. Yeates and M. de Champlain. Design of a garbage collector using design patterns. In C. Mingins, R. Duke, and B. Meyer, editors, Proceedings of the Twenty-Fifth Conference of (TOOLS) Pacific, pages 77-92, Melbourne, 1997.

Cited By

View all
  • (2023)Linear-Mark: Locality vs. Accuracy in Mark-Sweep Garbage CollectionProceedings of the International Symposium on Memory Systems10.1145/3631882.3631893(1-12)Online publication date: 2-Oct-2023
  • (2022)Deep Dive into ZGC: A Modern Garbage Collector in OpenJDKACM Transactions on Programming Languages and Systems10.1145/353853244:4(1-34)Online publication date: 21-Sep-2022
  • (2021)Eclipse OMR garbage collection for tracing JIT-based virtual machinesProceedings of the 31st Annual International Conference on Computer Science and Software Engineering10.5555/3507788.3507826(244-249)Online publication date: 22-Nov-2021
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '04: Proceedings of the 26th International Conference on Software Engineering
May 2004
761 pages
ISBN:0769521630

Sponsors

Publisher

IEEE Computer Society

United States

Publication History

Published: 23 May 2004

Check for updates

Qualifiers

  • Article

Conference

ICSE04
Sponsor:

Acceptance Rates

ICSE '04 Paper Acceptance Rate 58 of 436 submissions, 13%;
Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)0
Reflects downloads up to 01 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Linear-Mark: Locality vs. Accuracy in Mark-Sweep Garbage CollectionProceedings of the International Symposium on Memory Systems10.1145/3631882.3631893(1-12)Online publication date: 2-Oct-2023
  • (2022)Deep Dive into ZGC: A Modern Garbage Collector in OpenJDKACM Transactions on Programming Languages and Systems10.1145/353853244:4(1-34)Online publication date: 21-Sep-2022
  • (2021)Eclipse OMR garbage collection for tracing JIT-based virtual machinesProceedings of the 31st Annual International Conference on Computer Science and Software Engineering10.5555/3507788.3507826(244-249)Online publication date: 22-Nov-2021
  • (2021)Performance Evaluation of Intel Optane Memory for Managed WorkloadsACM Transactions on Architecture and Code Optimization10.1145/345134218:3(1-26)Online publication date: 22-Apr-2021
  • (2019)Floorplan: spatial layout in memory management systemsProceedings of the 18th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences10.1145/3357765.3359519(81-93)Online publication date: 21-Oct-2019
  • (2019)Crystal GazerProceedings of the ACM on Measurement and Analysis of Computing Systems10.1145/3322205.33110803:1(1-27)Online publication date: 26-Mar-2019
  • (2019)DecaACM Transactions on Computer Systems10.1145/331036136:1(1-47)Online publication date: 14-Mar-2019
  • (2018)Write-rationing garbage collection for hybrid memoriesACM SIGPLAN Notices10.1145/3296979.319239253:4(62-77)Online publication date: 11-Jun-2018
  • (2018)Transactional SapphireACM Transactions on Programming Languages and Systems10.1145/322622540:4(1-56)Online publication date: 10-Dec-2018
  • (2018)Write-rationing garbage collection for hybrid memoriesProceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3192366.3192392(62-77)Online publication date: 11-Jun-2018
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media