Ugawa, Tomoharu, Ritson, Carl G., Jones, Richard E. (2018) Transactional Sapphire: Lessons in High Performance, On-the-fly Garbage Collection. ACM Transactions on Programming Languages and Systems, 40 (4). Article Number 15. ISSN 0164-0925. E-ISSN 1558-4593. (doi:10.1145/3226225) (KAR id:67207)
PDF
Author's Accepted Manuscript
Language: English |
|
Download this file (PDF/1MB) |
Preview |
Request a format suitable for use with assistive technology e.g. a screenreader | |
PDF
Pre-print
Language: English Restricted to Repository staff only
This work is licensed under a Creative Commons Attribution 4.0 International License.
|
|
Contact us about this Publication
|
|
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 |
---|---|
DOI/Identification number: | 10.1145/3226225 |
Projects: | Engineering and Physical Sciences Research Council, Engineering and Physical Sciences Research Council, Information Processing Society of Japan, 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: | Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing |
Funders: |
Engineering and Physical Sciences Research Council (https://ror.org/0439y7842)
Organisations -1 not found. |
Depositing User: | Richard Jones |
Date Deposited: | 05 Jun 2018 21:10 UTC |
Last Modified: | 05 Nov 2024 11:07 UTC |
Resource URI: | https://kar.kent.ac.uk/id/eprint/67207 (The current URI for this page, for reference purposes) |
- Link to SensusAccess
- Export to:
- RefWorks
- EPrints3 XML
- BibTeX
- CSV
- Depositors only (login required):