Evaluating Garbage Collection Performance Across Managed Language Runtimes
Yicheng Wang, Wensheng Dou, Yu Liang, Yi Wang, Wei Wang, Jun Wei, Tao Huang
Abstract
Modern managed language runtimes (e.g., Java, Go and C#) rely on garbage collection (GC) mechanisms to automatically allocate and reclaim in-memory objects. The efficiency of GC implementations can greatly impact the overall performance of runtime-based applications. To improve GC performance, the academic and industrial communities have proposed several approaches to evaluate the GC implementations in an individual runtime. However, these approaches target a specific managed language (e.g., Java), and cannot be used to compare the GC implementations in different runtimes.
In this paper, we propose GEAR, an automated approach to construct consistent GC workloads for different managed language runtimes, which can further be used to evaluate GC implementations across different runtimes. Specifically, we design a group of runtime-agnostic Memory Operation Primitives (MOP), which can portray the memory usage information that influences GC. GEAR can further automatically convert a MOP program into runtime-specific programs for the target runtimes, which serve as a consistent GC workload for different runtimes. To build MOP programs with real-world GC workloads, we instrument the commonly-used runtime Java Virtual Machine (JVM) to collect the memory operation trace during a Java application's execution, and then transform the memory operation trace into a MOP program. The experimental result on three widely-used runtimes (i.e., Java, Go and C#) shows that GEAR can generate consistent GC workloads for different runtimes. We further conduct a comprehensive study on these three runtimes, and reveal some interesting findings about their GC performance, providing useful guidance for improving their GC implementations.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 2f4ce165-6223-4cf8-8e0c-e3ae4bbf8e66Builds on7
- Investigating Managed Language Runtime Performance: Why JavaScript and Python are 8x and 29x slower than C++, yet Java and Go can be Faster?David Lion, Adrian Chiu, Michael Stumm, Ding YuanUSENIX ATC 2022 · 31 citations
- Low-latency, high-throughput garbage collectionWenyu Zhao, Stephen M. Blackburn, Kathryn S. McKinleyPLDI 2022 · 24 citations
- Platinum: A CPU-Efficient Concurrent Garbage Collector for Tail-Reduction of Interactive ServicesMingyu Wu, Ziming Zhao, Yanfei Yang, Haoyu Li et al.USENIX ATC 2020 · 18 citations
- Twins or False Friends? A Study on Energy Consumption and Performance of Configurable SoftwareMax Weber, Christian Kaltenecker, Florian Sattler, Sven Apel et al.ICSE 2023 · 16 citations
- Revealing Performance Issues in Server-Side WebAssembly Runtimes Via Differential TestingShuyao Jiang, Ruiying Zeng, Zihao Rao, Jiazhen Gu et al.ASE 2023 · 12 citations
Related papers
- Uncovering Hidden Memory Costs for Garbage CollectionSudhanshu Agarwal, Saugata GhoseOOPSLA 2026
- Let It Go: Relieving Garbage Collection Pain for Latency Critical Applications in GolangJunxian Zhao, Xiaobo Zhou, Sang-Yoon Chang, Chengzhong XuHPDC 2023
- Shaving the Peaks: Taming Tail Latency for Managed Workloads via Disaggregated Garbage CollectionHongtao Lyu, Yuhan Li, Mingyu WuOSDI 2026
- Work Packets: A New Abstraction for GC Software Engineering, Optimization, and InnovationWenyu Zhao, Stephen M. Blackburn, Kathryn S. McKinleyOOPSLA 2025 · 3 citations
- Semeru: A Memory-Disaggregated Managed RuntimeChenxi Wang, Haoran Ma, Shi Liu, Yuanqi Li et al.OSDI 2020 · 6 citations
