paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Evaluating Garbage Collection Performance Across Managed Language Runtimes

跨托管语言运行时评估垃圾回收性能
ICSE 2025 IEEE/ACM 47th International Conference on Software Engineering (ICSE)2025匹配度 1/10 · 该论文关注托管语言运行时的垃圾回收性能评测与跨运行时负载生成,属于运行时/内存管理方向,与用户的 PL→AI、AI→PL、浮点程序分析、贝叶斯程序分析等核心方向没有交集。虽然其跨运行时 benchmark 构建方法有工程价值,但不涉及静态分析、LLM/Agent 或用户重点关注的分析技术。引用 1 inbox
Yicheng Wang, Wensheng Dou, Yu Liang, Yi Wang, Wei Wang, Jun Wei, Tao Huang
crossref: 2026-09-12

AI 速览

一句话:提出 GEAR,用运行时无关内存操作原语生成一致的跨运行时 GC 负载并比较 Java、Go、C# 的垃圾回收性能。

现代托管语言运行时(如 Java、Go、C#)依赖垃圾回收(GC)自动管理内存,但已有评估方法多针对单一语言,难以跨运行时比较 GC 实现。本文提出 GEAR:设计一组运行时无关的内存操作原语(MOP),用其刻画影响 GC 的内存使用信息,并自动将 MOP 程序转换为目标运行时程序,从而为不同运行时构建一致的 GC 工作负载。为贴近真实负载,作者插桩 JVM,采集 Java 应用执行期间的内存操作轨迹并转换为 MOP 程序。在 Java、Go、C# 上的实验表明 GEAR 能生成一致工作负载,并揭示三者 GC 性能的有趣发现,为改进 GC 实现提供指导。

问题
如何跨不同托管语言运行时一致地评估和比较垃圾回收实现,而非仅针对单一语言。
方法
提出 GEAR,以运行时无关内存操作原语 MOP 描述 GC 相关内存行为,自动生成各运行时程序,并通过 JVM 插桩将真实应用轨迹转成 MOP 工作负载。
评估
在 Java、Go 和 C# 三个运行时上验证工作负载一致性,并对它们的 GC 性能开展综合研究。
原文摘要(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.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot8822,
  title = {Evaluating Garbage Collection Performance Across Managed Language Runtimes},
  author = {Yicheng Wang and Wensheng Dou and Yu Liang and Yi Wang and Wei Wang and Jun Wei and Tao Huang},
  booktitle = {ICSE},
  year = {2025},
  doi = {10.1109/icse55347.2025.00218}
}