尚未生成 AI 速览(可能缺少 API key 或等待下次运行补跑)。
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 原文 ·
@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}
}