Evaluating HTM for pauseless garbage collectors in Java']Java

被引:2
作者
Carpen-Amarie, Maria [1 ]
Dice, Dave [2 ]
Marlier, Patrick [1 ]
Thomas, Gael [3 ]
Felber, Pascal [1 ]
机构
[1] Univ Neuchatel, Neuchatel, Switzerland
[2] Oracle Labs, Austin, TX USA
[3] Telecom SudParis, Paris, France
来源
2015 IEEE TRUSTCOM/BIGDATASE/ISPA, VOL 3 | 2015年
关键词
Garbage Collection; Hardware Transactional Memory; !text type='Java']Java[!/text] Virtual Machine;
D O I
10.1109/Trustcom.2015.606
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
While garbage collectors (GCs) significantly simplify programmers' tasks by transparently handling memory management, they also introduce various overheads and sources of unpredictability. Most importantly, GCs typically block the application while reclaiming free memory, which makes them unfit for environments where responsiveness is crucial, such as real-time systems. There have been several approaches for developing concurrent GCs that can exploit the processing capabilities of multi-core architectures, but at the expense of a synchronization overhead between the application and the collector. In this paper, we investigate a novel approach to implementing pauseless moving garbage collection using hardware transactional memory (HTM). We describe the design of a moving GC algorithm that can operate concurrently with the application threads. We study the overheads resulting from using transactional barriers in the Java virtual machine (JVM) and discuss various optimizations. Our findings show that, while the cost of these barriers can be minimized by carefully restricting them to volatile accesses when executing within the interpreter, the actual performance degradation becomes unacceptably high with the just-in-time compiler. The results tend to indicate that current publicly available HTM mechanisms (such as Intel Haswell) cannot be readily used to implement a pauseless GC in Java that can compete with state-of-the-art concurrent GCs.
引用
收藏
页码:1 / 8
页数:8
相关论文
共 26 条
[1]  
Alistarh D., 2014, EUROSYS 14, P25
[2]  
Anderson TA, 2010, ACM SIGPLAN NOTICES, V45, P21
[3]  
[Anonymous], QUEUE
[4]   The DaCapo benchmarks: Java']Java benchmarking development and analysis [J].
Blackburn, Stephen M. ;
Garner, Robin ;
Hoffmann, Chris ;
Khan, Asjad M. ;
McKinley, Kathryn S. ;
Bentzur, Rotem ;
Diwan, Amer ;
Feinberg, Daniel ;
Frampton, Daniel ;
Guyer, Samuel Z. ;
Hirzel, Martin ;
Hosking, Antony ;
Jump, Maria ;
Lee, Han ;
Moss, J. Eliot B. ;
Phansalkar, Aashish ;
Stefanovic, Darko ;
VanDrunen, Thomas ;
von Dincklage, Daniel ;
Wiedermann, Ben .
ACM SIGPLAN NOTICES, 2006, 41 (10) :169-190
[5]  
Brooks RodneyA., 1984, Proceedings of the 1984 ACM Symposium on LISP and Functional Programming, LFP '84, P256
[6]  
Carpen-Amarie Maria., 2015, P 20 INT C ARCHITECT, P20, DOI [10.1145/2712386.2712404, DOI 10.1145/2712386.2712404]
[7]  
Click C., 2005, VEE 05, P45
[8]  
Cooper B.F., 2010, SoCC, P143, DOI DOI 10.1145/1807128.1807152
[9]  
Detlefs D., 2004, P 4 INT S MEM MAN, P37, DOI [DOI 10.1145/1029873.1029879.MPLETHESERIAL, 10.1145/1029873.1029879, DOI 10.1145/1029873.1029879]
[10]  
Dice David, 2009, P 14 INT C ARCHITECT, P157, DOI [DOI 10.1145/1508284.1508263, 10.1145/1508244.1508263, DOI 10.1145/1508244.1508263]