Transactional Sapphire Lessons in High-Performance, On-the-fly Garbage Collection

Transactional Sapphire Lessons in High-Performance, On-the-fly Garbage Collection
复制标题

高性能、动态垃圾收集中的事务性蓝宝石课程

DOI:
10.1145/3226225
复制
发表时间:
2018
影响因子:
1.3
通讯作者:
Ugawa T
Ugawa T
中科院分区:
计算机科学2区
文献类型:
--
作者:
Ugawa T

文献摘要

相似文献

构建一个高性能的垃圾收集器是很困难的。构建一个完全并发的“动态”压缩收集器更是如此。我们描述了我们的经验,实现蓝宝石算法作为第一个即时的,并行的,复制复制,垃圾收集器的Jikes RVM Java虚拟机(JVM)。在某种程度上,我们解释了我们的创新,如硬件和软件事务复制,Java引用类型的动态管理,以及复制收集器中volatile字段的简单但正确的无锁管理。我们第一次全面评估,并使用现实的基准,蓝宝石的性能和适合作为一个低延迟收集器。这项工作的一个重要贡献是详细描述了我们为完整的JVM构建动态复制收集器的经验,并确保它是正确的。其中一个关键方面是对这个复杂且高度并发的系统的关键组件进行模型检查。
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.