TY - GEN
T1 - Address chain
T2 - 12th Asian Symposium on Programming Languages and Systems, APLAS 2014
AU - Shi, Xiaohua
AU - Xie, Junru
AU - Yu, Hengyang
N1 - Publisher Copyright:
© Springer International Publishing Switzerland 2014.
PY - 2014
Y1 - 2014
N2 - How to efficiently and adequately profile Java objects is one of the key problems for debugging, monitoring, program analysis, and many optimizations. Most current approaches have extra overheads in Java heaps and slow down the runtime performance significantly, or need to modify particular object layouts with limited extendibility and adaptivity. In this paper, we present a novel profiling mechanism, namely Address Chain, which has no overhead in Java heaps and does not modify object layouts, class layouts and any other key structures in Java Virtual Machines. So far, the Address Chain mechanism profiles the accurate life cycle, the allocation site in jitted code, as well as the physical memory trace of object movements with time stamps, etc., for every Java object. Furthermore, it provides a profiling framework that can be easily adapted to profile more or less information for future requirements. It is a general mechanism suitable for garbage collectors using mark-andsweep, copying or generational algorithms. The runtime overheads of our approach are reasonable. We implemented our mechanism on Apache Harmony 6.0 DRLVM, which is a J2SE Virtual Machine with a generational garbage collector. The runtime overheads of the profiler are about 5% on average for SpecJVM2008, less than 8% for SpecJBB2005, and about 8% for Dacapo, respectively. We use a distributed mode to collect and calculate the object information from the profiled data sent via network. For most cases we studied, the object status can be calculated almost simultaneously when Java applications run on another computing device. Our mechanism has the capability of providing online object status in a distributed way. We also demonstrate how to use the profiled data to help optimizations like pretenuring.
AB - How to efficiently and adequately profile Java objects is one of the key problems for debugging, monitoring, program analysis, and many optimizations. Most current approaches have extra overheads in Java heaps and slow down the runtime performance significantly, or need to modify particular object layouts with limited extendibility and adaptivity. In this paper, we present a novel profiling mechanism, namely Address Chain, which has no overhead in Java heaps and does not modify object layouts, class layouts and any other key structures in Java Virtual Machines. So far, the Address Chain mechanism profiles the accurate life cycle, the allocation site in jitted code, as well as the physical memory trace of object movements with time stamps, etc., for every Java object. Furthermore, it provides a profiling framework that can be easily adapted to profile more or less information for future requirements. It is a general mechanism suitable for garbage collectors using mark-andsweep, copying or generational algorithms. The runtime overheads of our approach are reasonable. We implemented our mechanism on Apache Harmony 6.0 DRLVM, which is a J2SE Virtual Machine with a generational garbage collector. The runtime overheads of the profiler are about 5% on average for SpecJVM2008, less than 8% for SpecJBB2005, and about 8% for Dacapo, respectively. We use a distributed mode to collect and calculate the object information from the profiled data sent via network. For most cases we studied, the object status can be calculated almost simultaneously when Java applications run on another computing device. Our mechanism has the capability of providing online object status in a distributed way. We also demonstrate how to use the profiled data to help optimizations like pretenuring.
KW - Garbage collector
KW - Java virtual machine
KW - Profiling
UR - https://www.scopus.com/pages/publications/84909990196
U2 - 10.1007/978-3-319-12736-1_22
DO - 10.1007/978-3-319-12736-1_22
M3 - 会议稿件
AN - SCOPUS:84909990196
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 408
EP - 427
BT - Programming Languages and Systems - 12th Asian Symposium, APLAS 2014, Proceedings
A2 - Garrigue, Jacques
PB - Springer Verlag
Y2 - 17 November 2014 through 19 November 2014
ER -