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

被引:7
作者
Ugawa, Tomoharu [1 ]
Ritson, Carl G. [2 ]
Jones, Richard E. [2 ]
机构
[1] Kochi Univ Technol, Sch Informat, Kochi 7828502, Japan
[2] Univ Kent, Sch Comp, Canterbury CT2 7NF, Kent, England
来源
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS | 2018年 / 40卷 / 04期
基金
英国工程与自然科学研究理事会;
关键词
Concurrent garbage collection; replicating garbage collection; parallel garbage collection; transactional memory; model checking; reference objects; !text type='Java']Java[!/text; REAL-TIME; !text type='JAVA']JAVA[!/text;
D O I
10.1145/3226225
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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, onthe-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.
引用
收藏
页数:56
相关论文
共 75 条
[1]  
Adl-Tabatabai AR, 2009, INTEGR CIRCUIT SYST, P145, DOI 10.1007/978-1-4419-0263-4_5
[2]  
Alpern B, 2002, USENIX ASSOCIATION PROCEEDINGS OF THE 2ND JAVA(TM) VIRTUAL MACHINE RESEARCH AND TECHNOLOGY SYMPOSIUM, P51
[3]  
[Anonymous], 2012, The Garbage Collection Handbook
[4]  
[Anonymous], 2004, The SPIN Model Checker-Primer and Reference Manual
[5]  
[Anonymous], 2008, ART MULTIPROCESSOR P
[6]  
[Anonymous], 2013, INT 64 IA 32 ARCH SO
[7]   A Real-time Java']Java virtual machine with applications in avionics [J].
Armbruster, Austin ;
Baker, Jason ;
Cunei, Antonio ;
Flack, Chapman ;
Holmes, David ;
Pizlo, Filip ;
Pla, Edward ;
Prochazka, Marek ;
Vitek, Jan .
ACM TRANSACTIONS ON EMBEDDED COMPUTING SYSTEMS, 2008, 7 (01)
[8]   A framework for reducing the cost of instrumented code [J].
Arnold, M ;
Ryder, BG .
ACM SIGPLAN NOTICES, 2001, 36 (05) :168-179
[9]  
Auerbach Joshua., 2008, Proceedings of the 8th ACM Int'l Conf. on Embedded Software, P245
[10]  
Azul, 2010, CISC VIS NETW IND GL