Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2568088.2568091acmconferencesArticle/Chapter ViewAbstractPublication PagesicpeConference Proceedingsconference-collections
research-article

The taming of the shrew: increasing performance by automatic parameter tuning for java garbage collectors

Published: 22 March 2014 Publication History

Abstract

Garbage collection, if not tuned properly, can considerably impact application performance. Unfortunately, configuring a garbage collector is a tedious task as only few guidelines exist and tuning is often done by trial and error. We present what is, to our knowledge, the first published work on automatically tuning Java garbage collectors in a black-box manner considering all available parameters. We propose the use of iterated local search methods to automatically compute application-specific garbage collector configurations. Our experiments show that automatic tuning can reduce garbage collection time by up to 77% for a specific application and a specific workload and by 35% on average across all benchmarks (compared to the default configuration). We evaluated our approach for 3 different garbage collectors on the DaCapo and SPECjbb benchmarks, as well as on a real-world industrial application.

References

[1]
DaCapo. http://www.dacapobench.org/, 2013.
[2]
M. Affenzeller. Architecture and Design of the HeuristicLab Optimization Environment. In Advanced Methods and Applications in Computational Intelligence, pages 197--261, 2014.
[3]
S. Balsamo, G.-L. D. Rossi, and A. Marin. Optimisation of Virtual Machine Garbage Collection Policies. In Proc. of the Intl. Conf. on Analytical and Stochastic Modeling Techniques and Applications, pages 70--84, 2011.
[4]
M. Beckwith. G1: One Garbage Collector to Rule Them All. http://www.infoq.com/articles/G1-One-Garbage-Collector-To-Rule-Them-All, 2013.
[5]
M. Beckwith. Garbage First Garbage Collector Tuning. http://www.oracle.com/technetwork/articles/java/g1gc-1984535.html, 2013.
[6]
S. M. Blackburn, P. Cheng, and K. S. McKinley. Myths and Realities: the Performance Impact of Garbage Collection. In Proc. of the Joint Intl. Conf. on Measurement and Modeling of Computer Systems, pages 25--36, 2004.
[7]
S. M. Blackburn, R. Garner, C. Hoffmann, A. M. Khang, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, M. Hirzel, A. Hosking, M. Jump, H. Lee, J. E. B. Moss, A. Phansalkar, D. Stefanović, T. VanDrunen, D. von Dincklage, and B. Wiedermann. The DaCapo Benchmarks: Java Benchmarking Development and Analysis. In Proc. of the Annual ACM SIGPLAN Conf. on Object-oriented Programming Systems, Languages, and Applications, pages 169--190, 2006.
[8]
T. Brecht, E. Arjomandi, C. Li, and H. Pham. Controlling Garbage Collection and Heap Growth to Reduce the Execution Time of Java Applications. Trans. Program. Lang. Syst., 28(5):908--941, 2006.
[9]
D. Detlefs. Concurrent Remembered Set Refinement in Generational Garbage Collection. In USENIX Java VM Research and Technology Symp., 2002.
[10]
D. Detlefs, C. Flood, S. Heller, and T. Printezis. Garbage-First Garbage Collection. In Proc. of the Intl. Symp. on Memory Management, pages 37--48, 2004.
[11]
G. Gousios, V. Karakoidas, and D. Spinellis. Tuning Java's Memory Manager for High Performance Server Applications. In Proc. of the 5th Intl. System Administration and Network Conf., pages 69--83, 2006.
[12]
X. Guan, W. Srisa-an, and C. Jia. Investigating the Effects of Using Different Nursery Sizing Policies on Performance. In Proc. of the Intl. Symp. on Memory Management, pages 59--68, New York, NY, USA, 2009.
[13]
M. Hirt and M. Lagergren. Oracle JRockit: The Definitive Guide. 2010.
[14]
F. Hutter, H. H. Hoos, K. Leyton-Brown, and T. Stutzle. ParamILS: An Automatic Algorithm Configuration Framework. Journal of Artificial Intelligence Research, 36:267--306, 2009.
[15]
S. Lee. How to Tune Java Garbage Collection. http://www.cubrid.org/blog/textyle/428187, 2012.
[16]
H. Lieberman and C. Hewitt. A Real-time Garbage Collector Based on the Lifetimes of Objects. Commun. ACM, 26(6):419--429, 1983.
[17]
Oracle. Garbage Collector Ergonomic. http://docs.oracle.com/javase/7/docs/technotes/guides/vm/gc-ergonomics.html, 2013.
[18]
Oracle. Java HotSpot VM Options. http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html, 2013.
[19]
Oracle. Java SE 6 HotSpot{tm} Virtual Machine Garbage Collection Tuning. http://www.oracle.com/technetwork/java/javase/gc-tuning-6--140523.html, 2013.
[20]
Oracle. OpenJDK 8 Early Access Release b100. http://jdk8.java.net/archive/8-b100.html, 2013.
[21]
J. Singer, G. Brown, I. Watson, and J. Cavazos. Intelligent Selection of Application-specific Garbage Collectors. In Proc. of the Intl. Symp. on Memory Management, pages 91--102, 2007.
[22]
J. Singer, R. E. Jones, G. Brown, and M. Luján. The Economics of Garbage Collection. In Proc. of the Intl. Symp. on Memory Management, pages 103--112, 2010.
[23]
J. Singer, G. Kovoor, G. Brown, and M. Luján. Garbage collection auto-tuning for java mapreduce on multi-cores. In Proc. of the Intl. Symp. on Memory Management, pages 109--118, 2011.
[24]
D. Ungar. Generation Scavenging: A Non-disruptive High Performance Storage Reclamation Algorithm. In Proc. of the ACM SIGSOFT/SIGPLAN Software Engineering Symp. on Practical Software Development Environments, pages 157--167, 1984.
[25]
J. Velasco, A. Ortiz, K. Olcoz, and F. Tirado. Dynamic Management of Nursery Space Organization in Generational Collection. In INTERACT-8, workshop, pages 33--40, 2004.
[26]
D. Vengerov. Modeling, Analysis and Throughput Optimization of a Generational Garbage Collector. In Proc. of the Intl. Symp. on Memory Management, pages 1--9, 2009.
[27]
T. Yang, M. Hertz, E. D. Berger, S. F. Kaplan, and J. E. B. Moss. Automatic Heap Sizing: Taking Real Memory into Account. In Proc. of the Intl. Symp. on Memory Management, pages 61--72, 2004.

Cited By

View all
  • (2023)Analyzing and Improving the Scalability of In-Memory Indices for Managed Search EnginesProceedings of the 2023 ACM SIGPLAN International Symposium on Memory Management10.1145/3591195.3595272(15-29)Online publication date: 6-Jun-2023
  • (2023)A Prediction System ServiceProceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 210.1145/3575693.3575714(48-60)Online publication date: 27-Jan-2023
  • (2021)The interplay of compile-time and run-time options for performance predictionProceedings of the 25th ACM International Systems and Software Product Line Conference - Volume A10.1145/3461001.3471149(100-111)Online publication date: 6-Sep-2021
  • Show More Cited By

Index Terms

  1. The taming of the shrew: increasing performance by automatic parameter tuning for java garbage collectors

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICPE '14: Proceedings of the 5th ACM/SPEC international conference on Performance engineering
March 2014
310 pages
ISBN:9781450327336
DOI:10.1145/2568088
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 22 March 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. configuration
  2. garbage collection
  3. java
  4. optimization

Qualifiers

  • Research-article

Funding Sources

  • Christian Doppler Forschungsgesellschaft
  • Compuware Austria GmbH

Conference

ICPE'14
Sponsor:

Acceptance Rates

ICPE '14 Paper Acceptance Rate 21 of 78 submissions, 27%;
Overall Acceptance Rate 252 of 851 submissions, 30%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)12
  • Downloads (Last 6 weeks)2
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Analyzing and Improving the Scalability of In-Memory Indices for Managed Search EnginesProceedings of the 2023 ACM SIGPLAN International Symposium on Memory Management10.1145/3591195.3595272(15-29)Online publication date: 6-Jun-2023
  • (2023)A Prediction System ServiceProceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 210.1145/3575693.3575714(48-60)Online publication date: 27-Jan-2023
  • (2021)The interplay of compile-time and run-time options for performance predictionProceedings of the 25th ACM International Systems and Software Product Line Conference - Volume A10.1145/3461001.3471149(100-111)Online publication date: 6-Sep-2021
  • (2021)Optimization of Java Virtual Machine Flags using Feature Model and Genetic AlgorithmCompanion of the ACM/SPEC International Conference on Performance Engineering10.1145/3447545.3451177(183-186)Online publication date: 19-Apr-2021
  • (2021)Handling State Space Explosion in Component-Based Software Verification: A ReviewIEEE Access10.1109/ACCESS.2021.30817429(77526-77544)Online publication date: 2021
  • (2020)Efficient nursery sizing for managed languages on multi-core processors with shared cachesProceedings of the 18th ACM/IEEE International Symposium on Code Generation and Optimization10.1145/3368826.3377908(1-15)Online publication date: 22-Feb-2020
  • (2019)Assessing and optimizing the performance impact of the just-in-time configuration parameters - a case study on PyPyEmpirical Software Engineering10.1007/s10664-019-09691-z24:4(2323-2363)Online publication date: 1-Aug-2019
  • (2018)Comparison of garbage collectors in Java programming language2018 41st International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO)10.23919/MIPRO.2018.8400277(1539-1544)Online publication date: May-2018
  • (2018)Fast-path loop unrolling of non-counted loops to enable subsequent compiler optimizationsProceedings of the 15th International Conference on Managed Languages & Runtimes10.1145/3237009.3237013(1-13)Online publication date: 12-Sep-2018
  • (2018)Towards an Efficient Benchmark Generation Engine for Garbage CollectionCompanion of the 2018 ACM/SPEC International Conference on Performance Engineering10.1145/3185768.3186303(9-12)Online publication date: 2-Apr-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