ABSTRACT
Memory management is responsible for allocating and releasing the memory used by applications (e.g., in the Java Virtual Machine-JVM). There are several garbage collectors (GCs) each designed to target different performance metrics, making it very hard for developers to decide which GC to use for a particular application. We start with a review of existing GC algorithms. Then, we intend to evaluate throughput, pause time, and memory usage in existing JVM GCs using benchmark suites like DaCapo and Renaissance. The goal is to find the trade-offs between the above mentioned performance metrics to have a better understanding of which GC helps fulfilling certain application requirements.
- Stephen M. Blackburn, Robin Garner, Chris Hoffmann, Asjad M. Khang, Kathryn S. McKinley, Rotem Bentzur, Amer Diwan, Daniel Feinberg, Daniel Frampton, Samuel Z. Guyer, Martin Hirzel, Antony Hosking, Maria Jump, Han Lee, J. Eliot B. Moss, Aashish Phansalkar, Darko Stefanović, Thomas VanDrunen, Daniel von Dincklage, and Ben Wiedermann. 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. Google ScholarDigital Library
- Rodrigo Bruno and Paulo Ferreira. 2018. A study on garbage collection algorithms for big data environments. ACM Computing Surveys (CSUR) 51, 1 (2018), 1--35. https://doi.org/10.1145/3156818 Google ScholarDigital Library
- Min Chen, Shiwen Mao, and Yunhao Liu. 2014. Big data: A survey. Mobile networks and applications 19, 2 (2014), 171--209. https://doi. org/10.1007/s11036-013-0489-0Google ScholarCross Ref
- David Detlefs, Christine Flood, Steve Heller, and Tony Printezis. 2004. Garbage-first garbage collection. In Proceedings of the 4th international symposium on Memory management. 37--48. Google ScholarDigital Library
- Christine H. Flood, Roman Kennke, Andrew Dinn, Andrew Haley, and Roland Westrelin. 2016. Shenandoah: An open-source concurrent compacting garbage collector for openjdk. In Proceedings of the 13th International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools. ACM, New York, NY, USA, 1--9. https://doi.org/10.1145/2972206.2972210 Google ScholarDigital Library
- H Grgic, Branko Mihaljević, and Aleksander Radovan. 2018. Comparison of garbage collectors in Java programming language. In 41st International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO). IEEE, 1539--1544. https://doi.org/10.23919/MIPRO.2018.8400277Google ScholarCross Ref
- Richard E. Jones. 1996. Garbage collection: algorithms for automatic dynamic memory management. John Wiley and Sons. Google ScholarDigital Library
- OpenJDk 2007. OpenJDK. https://openjdk.java.net/.Google Scholar
- Aleksandar Prokopec, Andrea Rosà, David Leopoldseder, Gilles Duboscq, Petr Tůma, Martin Studener, Lubomír Bulej, Yudi Zheng, Alex Villazón, Doug Simon, Thomas Würthinger, and Walter Binder. 2019. Renaissance: benchmarking suite for parallel applications on the JVM. In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation. ACM, 31--47. Google ScholarDigital Library
- P. Pufek, Hrvoje Grgić, and Branko Mihaljević. 2019. Analysis of Garbage Collection Algorithms and Memory Management in Java. In 42nd International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO). IEEE, 1677--1682. https://doi.org/10.23919/MIPRO.2019.8756844Google ScholarCross Ref
- David Ungar and Frank Jackson. 1988. Tenuring policies for generation-based storage reclamation. ACM SIGPLAN Notices 23, 11 (1988), 1--17. Google ScholarDigital Library
- ZGC 2018. ZGC: A Scalable Low-Latency Garbage Collector. https://openjdk.java.net/jeps/333.Google Scholar
- Wenyu Zhao and Stephen M. Blackburn. 2020. Deconstructing the Garbage-First Collector. In The 16th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments (VEE). ACM, New York, NY, USA, 15--29. https://doi.org/10.1145/3381052.3381320 Google ScholarDigital Library
Index Terms
- Selecting a JVM Garbage Collector for Big Data and Cloud Services
Recommendations
A generational on-the-fly garbage collector for Java
PLDI '00: Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementationAn on-the-fly garbage collector does not stop the program threads to perform the collection. Instead, the collector executes in a separate thread (or process) in parallel to the program. On-the-fly collectors are useful for multi-threaded applications ...
A generational on-the-fly garbage collector for Java
An on-the-fly garbage collector does not stop the program threads to perform the collection. Instead, the collector executes in a separate thread (or process) in parallel to the program. On-the-fly collectors are useful for multi-threaded applications ...
An on-the-fly mark and sweep garbage collector based on sliding views
Special Issue: Proceedings of the OOPSLA '03 conferenceWith concurrent and garbage collected languages like Java and C# becoming popular, the need for a suitable non-intrusive, efficient, and concurrent multiprocessor garbage collector has become acute. We propose a novel mark and sweep on-the-fly algorithm ...
Comments