Ugawa, Tomoharu and Ritson, Carl G. and Jones, Richard E. (2018) Transactional Sapphire: Lessons in High Performance, On-the-fly Garbage Collection. Transactions on Programming Languages and Systems, 40 (4). 15:1-15:56. ISSN 0164-0925. E-ISSN 1558-4593. (doi:https://doi.org/10.1145/3226225) (Full text available)
PDF
- Author's Accepted Manuscript
![]() This work is licensed under a Creative Commons Attribution 4.0 International License. |
||
Download (867kB)
Preview
|
|
|
PDF
- Pre-print
![]() This work is licensed under a Creative Commons Attribution 4.0 International License. |
||
Download (867kB)
Preview
|
|
|
Official URL http://dx.doi.org/10.1145/3226225 |
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. 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.
Item Type: | Article |
---|---|
Projects: | Projects 0 not found. Projects 0 not found. [UNSPECIFIED] Information Processing Society of Japan [UNSPECIFIED] Google Summer or Code |
Uncontrolled keywords: | Concurrent garbage collection, Replicating garbage collection, Parallel garbage collection, Transactional memory, Model checking, Reference objects, Java |
Subjects: | Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming, > QA76.76 Computer software |
Divisions: |
Faculties > Sciences > School of Computing Faculties > Sciences > School of Computing > Programming Languages and Systems Group |
Depositing User: | Richard Jones |
Date Deposited: | 05 Jun 2018 21:10 UTC |
Last Modified: | 15 Jan 2019 15:41 UTC |
Resource URI: | https://kar.kent.ac.uk/id/eprint/67207 (The current URI for this page, for reference purposes) |
Ugawa, Tomoharu: | ![]() |
Jones, Richard E.: | ![]() |
- Export to:
- RefWorks
- EPrints3 XML
- BibTeX
- CSV
- Depositors only (login required):