[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3447545.3451177acmconferencesArticle/Chapter ViewAbstractPublication PagesicpeConference Proceedingsconference-collections
Work in Progress

Optimization of Java Virtual Machine Flags using Feature Model and Genetic Algorithm

Published: 19 April 2021 Publication History

Abstract

Optimizing the Java Virtual Machine (JVM) options in order to get the best performance out of a program for production is a challenging and time-consuming task. HotSpot, the Oracle's open-source Java VM implementation offers more than 500 options, called flags, that can be used to tune the JVM's compiler, garbage collector (GC), heap size and much more. In addition to being numerous, these flags are sometimes poorly documented and create a need of benchmarking to ensure that the flags and their associated values deliver the best performance and stability for a particular program to execute.
Auto-tuning approaches have already been proposed in order to mitigate this burden. However, in spite of increasingly sophisticated search techniques allowing for powerful optimizations, these approaches take little account of the underlying complexities of JVM flags. Indeed, dependencies and incompatibilities between flags are non-trivial to express, which if not taken into account may lead to invalid or spurious flag configurations that should not be considered by the auto-tuner.
In this paper, we propose a novel model, inspired by the feature model used in Software Product Line, which takes the complexity of JVM's flags into account. We then demonstrate the usefulness of this model, using it as an input of a Genetic Algorithm (GA) to optimize the execution times of DaCapo Benchmarks.

References

[1]
Jason Ansel, Shoaib Kamil, Kalyan Veeramachaneni, Jonathan Ragan-Kelley, Jeffrey Bosboom, Una-May O'Reilly, and Saman Amarasinghe. 2014. Opentuner: An extensible framework for program autotuning. In Proceedings of the 23rd international conference on Parallel architectures and compilation. 303--316.
[2]
Stephen M Blackburn, Robin Garner, Chris Hoffmann, Asjad M Khang, Kathryn S McKinley, Rotem Bentzur, Amer Diwan, Daniel Feinberg, Daniel Frampton,Samuel Z Guyer, et al. 2006. The DaCapo benchmarks: Java benchmarking development and analysis. In Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications. 169--190.
[3]
Tim Brecht, Eshrat Arjomandi, Chang Li, and Hang Pham. 2001. Controlling garbage collection and heap growth to reduce the execution time of Java applications. ACM Sigplan Notices 36, 11 (2001), 353--366.
[4]
Guangyu Chen, R Shetty, Mahmut Kandemir, Narayanan Vijaykrishnan, Mary Jane Irwin, and Mario Wolczko. 2002. Tuning garbage collection in an embedded Java environment. In Proceedings Eighth International Symposium on High Performance Computer Architecture. IEEE, 92--103.
[5]
Tianqi Chen, Thierry Moreau, Ziheng Jiang, Lianmin Zheng, Eddie Yan, Haichen Shen, Meghan Cowan, Leyuan Wang, Yuwei Hu, Luis Ceze, et al. 2018. TVM:An automated end-to-end optimizing compiler for deep learning. In 13th Symposium on Operating Systems Design and Implementation (OSDI 18). 578--594.
[6]
Daniel Ennis. 2020. Tuning the JVM -- G1GC Garbage Collector Flags for Minecraft. https://aikar.co/2018/07/02/tuning-the-jvm-g1gc-garbage-collector-flags-for-minecraft/. [Online; accessed 22 January-2021].
[7]
Andy Georges, Dries Buytaert, and Lieven Eeckhout. 2007. Statistically rigorous Java performance evaluation. ACM SIGPLAN Notices 42, 10 (2007), 57--76.
[8]
Frank Hutter, Holger H Hoos, Kevin Leyton-Brown, and Thomas Stützle. 2009. ParamILS: an automatic algorithm configuration framework.Journal of Artificial Intelligence Research 36 (2009), 267--306.
[9]
Sanath Jayasena, Milinda Fernando, Tharindu Rusira, Chalitha Perera, and Chamara Philips. 2015. Auto-tuning the java virtual machine. In 2015 IEEE International Parallel and Distributed Processing Symposium Workshop. IEEE, 1261--1270.
[10]
Herbert Jordan, Peter Thoman, Juan J Durillo, Simone Pellegrini, Philipp Gschwandtner, Thomas Fahringer, and Hans Moritsch. 2012. A multi-objective auto-tuning framework for parallel codes. In SC'12: Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis. IEEE, 1--12.
[11]
Iffat H Kazi, Howard H Chen, Berdenia Stanley, and David J Lilja. 2000. Techniques for obtaining high performance in Java programs. ACM CSUR 32 (2000), 213--240.
[12]
Philipp Lengauer and Hanspeter Mössenböck. 2014. The taming of the shrew:increasing performance by automatic parameter tuning for java garbage collectors. In Proceedings of the 5th ACM/SPEC international conference on Performance engineering. 111--122.
[13]
Shlomo S Sawilowsky. 2009. New effect size rules of thumb. Journal of Modern Applied Statistical Methods 8, 2 (2009), 26.
[14]
Jeremy Singer, Gavin Brown, Ian Watson, and John Cavazos. 2007. Intelligent selection of application-specific garbage collectors. In Proceedings of the 6th international symposium on Memory management. 91--102.
[15]
Jeremy Singer, George Kovoor, Gavin Brown, and Mikel Luján. 2011. Garbage collection auto-tuning for java mapreduce on multi-cores. ACM SIGPLAN Notices 46, 11 (2011), 109--118.
[16]
Cristian Tapus, I-Hsin Chung, and Jeffrey K Hollingsworth. 2002. Active harmony: Towards automated performance tuning. In SC'02: Proceedings of the 2002 ACM/IEEE Conference on Supercomputing. IEEE, 44--44.

Cited By

View all
  • (2024)Impact of JVM Configurations on Test Runtime2024 IEEE International Conference on Software Maintenance and Evolution (ICSME)10.1109/ICSME58944.2024.00032(249-261)Online publication date: 6-Oct-2024
  • (2022)History-driven test program synthesis for JVM testingProceedings of the 44th International Conference on Software Engineering10.1145/3510003.3510059(1133-1144)Online publication date: 21-May-2022

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICPE '21: Companion of the ACM/SPEC International Conference on Performance Engineering
April 2021
198 pages
ISBN:9781450383318
DOI:10.1145/3447545
Permission to make digital or hard copies of part or all 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 third-party components of this work must be honored. For all other uses, contact the Owner/Author.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 April 2021

Check for updates

Author Tags

  1. auto-tuning
  2. feature model
  3. genetic algorithm
  4. java virtual machine
  5. optimization

Qualifiers

  • Work in progress

Funding Sources

Conference

ICPE '21

Acceptance Rates

Overall Acceptance Rate 252 of 851 submissions, 30%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)14
  • Downloads (Last 6 weeks)5
Reflects downloads up to 31 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Impact of JVM Configurations on Test Runtime2024 IEEE International Conference on Software Maintenance and Evolution (ICSME)10.1109/ICSME58944.2024.00032(249-261)Online publication date: 6-Oct-2024
  • (2022)History-driven test program synthesis for JVM testingProceedings of the 44th International Conference on Software Engineering10.1145/3510003.3510059(1133-1144)Online publication date: 21-May-2022

View Options

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