TY - GEN
T1 - Evaluating HTM for Pauseless Garbage Collectors in Java
AU - Carpen-Amarie, Maria
AU - Dice, Dave
AU - Marlier, Patrick
AU - Thomas, Gael
AU - Felber, Pascal
N1 - Publisher Copyright:
© 2015 IEEE.
PY - 2015/12/2
Y1 - 2015/12/2
N2 - 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 realtime 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.
AB - 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 realtime 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.
KW - Garbage Collection
KW - Hardware Transactional Memory
KW - Java Virtual Machine
UR - https://www.scopus.com/pages/publications/84969248218
U2 - 10.1109/Trustcom.2015.606
DO - 10.1109/Trustcom.2015.606
M3 - Conference contribution
AN - SCOPUS:84969248218
T3 - Proceedings - 14th IEEE International Conference on Trust, Security and Privacy in Computing and Communications, TrustCom 2015
SP - 1
EP - 8
BT - Proceedings - 13th IEEE International Symposium on Parallel and Distributed Processing with Applications, ISPA 2015
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 14th IEEE International Conference on Trust, Security and Privacy in Computing and Communications, TrustCom 2015
Y2 - 20 August 2015 through 22 August 2015
ER -