paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Transactional Sapphire

事务性 Sapphire
TOPLAS 40(4)2018匹配度 1/10 · 论文聚焦 Jikes RVM 上的并行复制式垃圾回收器实现、事务内存与模型检验,属于 PL/系统与并发运行时方向;与用户核心关注的静态分析、LLM/Agent 交叉、浮点程序分析或贝叶斯程序分析没有直接交集。引用 7 inbox
Tomoharu Ugawa, Carl G. Ritson, Richard E. Jones
crossref: 2026-09-10

AI 速览

一句话:实现并评估 Jikes RVM 上首个 on-the-fly 并行复制式 GC Sapphire,借助硬/软件事务与模型检验保证正确性。

构建高性能垃圾收集器本身困难,而完全并发的 on-the-fly 复制/压缩收集器更难。本文在 Jikes RVM Java 虚拟机中实现 Sapphire 算法,给出首个 on-the-fly、并行、复制式垃圾收集器,并报告工程经验。关键创新包括用硬件与软件事务实现对象复制、并发管理 Java 引用类型,以及复制式收集器中易变字段的无锁管理。作者首次使用真实基准全面评估 Sapphire 的性能和作为低延迟收集器的适用性,并对该高度并发系统的关键组件进行模型检验,以提供正确性保证。这些结果与经验为在完整 JVM 中构建并发复制收集器提供了参考。

问题
如何为完整 JVM 构建高性能、低延迟且完全并发的 on-the-fly 复制式垃圾收集器,并保证高度并发实现的正确性。
方法
在 Jikes RVM 中实现 Sapphire,采用硬件/软件事务复制对象、并发管理 Java 引用类型与易变字段,并对关键组件进行模型检验。
评估
使用真实基准首次全面评估其性能与作为低延迟收集器的适用性,并报告构建经验与正确性保证。
原文摘要(Abstract)

Constructing a high-performance garbage collector is hard. Constructing a fully concurrent ‘on-the-fly’ compacting collector is much more so. We describe our experience of implementing the Sapphire algorithm as the first on-the-fly, parallel, replication copying, garbage collector for the Jikes RVM Java virtual machine (JVM). In part, we explain our innovations such as copying with hardware and software transactions, on-the-fly management of Java’s reference types, and simple, yet correct, lock-free management of volatile fields in a replicating collector. We fully evaluate, for the first time, and using realistic benchmarks, Sapphire’s performance and suitability as a low latency collector. An important contribution of this work is a detailed description of our experience of building an on-the-fly copying collector for a complete JVM with some assurance that it is correct. A key aspect of this is model checking of critical components of this complicated and highly concurrent system.

链接与引用

DOI 原文 ·

BibTeX
@article{paperbot311,
  title = {Transactional Sapphire},
  author = {Tomoharu Ugawa and Carl G. Ritson and Richard E. Jones},
  journal = {ACM Transactions on Programming Languages and Systems},
  volume = {40},
  number = {4},
  year = {2018},
  doi = {10.1145/3226225}
}