BestGC: An Automatic GC Selector

被引:0
作者
Tavakolisomeh, Sanaz [1 ]
Bruno, Rodrigo [2 ]
Ferreira, Paulo [1 ]
机构
[1] Univ Oslo, Dept Informat, N-0373 Oslo, Norway
[2] ULisboa, INESC ID Tecn, P-1000029 Lisbon, Portugal
关键词
Garbage collection; !text type='java']java[!/text] virtual machine GCs; pause time; throughput; memory management; generational GC; concurrent GC;
D O I
10.1109/ACCESS.2023.3294398
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Garbage collection algorithms are widely used in programming languages like Java. However, selecting the most suitable garbage collection (GC) algorithm for an application is a complex task since they behave differently regarding crucial performance metrics such as garbage collection pause time, application throughput, and memory usage. This challenge is particularly more complicated as there is currently no available tool to assist users/developers in this critical decision-making process. In this paper, we address this pressing need by conducting an extensive evaluation of four widely used GCs (G1, Parallel, Shenandoah, and ZGC) in OpenJDK, considering application throughput, GC pause time, and various heap sizes. Building upon this evaluation, we present BestGC, a novel system that suggests the most suitable GC solution based on user-defined performance goals in terms of application throughput and GC pause time. Our evaluation of BestGC using multiple workloads demonstrates its effectiveness in suggesting the most suitable GC category (concurrent or generational/non-fully concurrent GC) in approximately 86% of the experiments on average. Additionally, BestGC accurately identifies the best GC in approximately 52% of the cases on average. Even in situations where BestGC failed to suggest the exact best GC or GC category, the suggested GC still outperforms the default GC (G1) in the JDK, exhibiting an average improvement of 1.75%. Notably, BestGC is designed to be easily extensible, facilitating its compatibility with other JDK versions, as well as new GCs and heap sizes. By addressing the lack of a practical tool to aid in GC selection, our research makes a significant contribution to the field of performance optimization in Java applications.
引用
收藏
页码:72357 / 72373
页数:17
相关论文
共 44 条
[1]  
[Anonymous], 2019, CONCURRENT MARK SWEE
[2]  
[Anonymous], 2008, SPECJVM2008
[3]  
[Anonymous], 2020, JAVA HOTSPOT VM
[4]  
Beronic D., 2022, 2022 45th Jubilee International Convention on Information, Communication and Electronic Technology (MIPRO)., P1495, DOI 10.23919/MIPRO55190.2022.9803445
[5]  
Blackburn S. M., 2004, Performance Evaluation Review, V32, P25, DOI 10.1145/1012888.1005693
[6]   The DaCapo benchmarks: Java']Java benchmarking development and analysis [J].
Blackburn, Stephen M. ;
Garner, Robin ;
Hoffmann, Chris ;
Khan, Asjad M. ;
McKinley, Kathryn S. ;
Bentzur, Rotem ;
Diwan, Amer ;
Feinberg, Daniel ;
Frampton, Daniel ;
Guyer, Samuel Z. ;
Hirzel, Martin ;
Hosking, Antony ;
Jump, Maria ;
Lee, Han ;
Moss, J. Eliot B. ;
Phansalkar, Aashish ;
Stefanovic, Darko ;
VanDrunen, Thomas ;
von Dincklage, Daniel ;
Wiedermann, Ben .
ACM SIGPLAN NOTICES, 2006, 41 (10) :169-190
[7]  
Bruno R., 2019, ACM COMPUT SURV, V51, P1
[8]   Runtime Object Lifetime Profiler for Latency Sensitive Big Data Applications [J].
Bruno, Rodrigo ;
Patricio, Duarte ;
Simao, Jose ;
Veiga, Luis ;
Ferreira, Paulo .
PROCEEDINGS OF THE FOURTEENTH EUROSYS CONFERENCE 2019 (EUROSYS '19), 2019,
[9]   POLM2: Automatic Profiling for Object Lifetime-Aware Memory Management for HotSpot Big Data Applications [J].
Bruno, Rodrigo ;
Ferreira, Paulo .
PROCEEDINGS OF THE 2017 INTERNATIONAL MIDDLEWARE CONFERENCE (MIDDLEWARE'17), 2017, :147-160
[10]   NG2C: Pretenuring Garbage Collection with Dynamic Generations for HotSpot Big Data Applications [J].
Bruno, Rodrigo ;
Oliveira, Luis Picciochi ;
Ferreira, Paulo .
ACM SIGPLAN NOTICES, 2017, 52 (09) :2-13