| Replay compilation: improving debuggability of a just-in-time compiler |
| Full text |
Pdf
(315 KB)
|
| Source
|
Conference on Object Oriented Programming Systems Languages and Applications
archive
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
table of contents
Portland, Oregon, USA
SESSION: Compilation
table of contents
Pages: 241 - 252
Year of Publication: 2006
ISBN:1-59593-348-4
Also published in ...
|
|
Authors
|
|
Kazunori Ogata
|
IBM Research, Kanagawa, Japan
|
|
Tamiya Onodera
|
IBM Research, Kanagawa, Japan
|
|
Kiyokuni Kawachiya
|
IBM Research, Kanagawa, Japan
|
|
Hideaki Komatsu
|
IBM Research, Kanagawa, Japan
|
|
Toshio Nakatani
|
IBM Research, Kanagawa, Japan
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 11, Downloads (12 Months): 66, Citation Count: 2
|
|
|
ABSTRACT
The performance of Java has been tremendously improved by the advance of Just-in-Time (JIT) compilation technologies. However, debugging such a dynamic compiler is much harder than a static compiler. Recompiling the problematic method to produce a diagnostic output does not necessarily work as expected, because the compilation of a method depends on runtime information at the time of compilation.In this paper, we propose a new approach, called replay JIT compilation, which can reproduce the same compilation remotely by using two compilers, the state-saving compiler and the replaying compiler. The state-saving compiler is used in a normal run, and, while compiling a method, records into a log all of the input for the compiler. The replaying compiler is then used in a debugging run with the system dump, to recompile a method with the options for diagnostic output. We reduced the overhead to save the input by using the system dump and by categorizing the input based on how its value changes. In our experiment, the increase of the compilation time for saving the input was only 1%, and the size of the additional memory needed for saving the input was only 10% of the compiler-generated code.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
 |
2
|
|
| |
3
|
|
 |
4
|
|
| |
5
|
Dynamic Proxy Classes, available at http://java.sun.com/j2se/1.4.2/docs/guide/reflection/proxy.html
|
| |
6
|
|
| |
7
|
N. Grcevski, A. Kielstra, K. Stoodley, M. Stoodley, and V. Sundaresan. Java Just-in-Time Compiler and Virtual Machine Improvements for Server and Middleware Applications. In Proceedings of the Third Virtual Machine Research and Technology Symposium (VM '04), pp. 151--162. May, 2004.
|
 |
8
|
Xianglong Huang , Stephen M. Blackburn , Kathryn S. McKinley , J Eliot B. Moss , Zhenlin Wang , Perry Cheng, The garbage collection advantage: improving program locality, Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 24-28, 2004, Vancouver, BC, Canada
|
 |
9
|
Kazuaki Ishizaki , Motohiro Kawahito , Toshiaki Yasue , Hideaki Komatsu , Toshio Nakatani, A study of devirtualization techniques for a Java Just-In-Time compiler, Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.294-310, October 2000, Minneapolis, Minnesota, United States
|
| |
10
|
Jigsaw - W3C's Server, available at http://www.w3.org/Jigsaw/
|
| |
11
|
S. Koemer , R. Bawidamann , W. Fischer , U. Helmich , D. Klodt , B. K. Tolan , P. Wojciak, The z990 first error data capture concept, IBM Journal of Research and Development, v.48 n.3-4, p.557-567, May 2004
|
| |
12
|
|
| |
13
|
|
 |
14
|
|
| |
15
|
M. Paleczny, C. Vick, and C. Click. The Java HotSpot Server Compiler. In Proceedings of the Java Virtual Machine Research and Technology Symposium (JVM '01), pp. 1--12. April, 2001.
|
 |
16
|
|
| |
17
|
M. Ronsse, K. D. Bosschere, and J. C. Kergommeaux. Execution replay and debugging. In Proceedings of the Fourth International Workshop on Automated and Algorithmic Debugging (AADEBUG 2000). August, 2000.
|
| |
18
|
Standard Performance Evaluation Corporation. SPEC JBB2000, available at http://www.spec.org/osg/jbb2000/
|
| |
19
|
Standard Performance Evaluation Corporation. SPEC JVM98, available at http://www.spec.org/osg/jvm98/
|
| |
20
|
T. Suganuma , T. Ogasawara , M. Takeuchi , T. Yasue , M. Kawahito , K. Ishizaki , H. Komatsu , T. Nakatani, Overview of the IBM Java just-in-time compiler, IBM Systems Journal, v.39 n.1, p.175-193, January 2000
|
 |
21
|
Levon Stepanian , Angela Demke Brown , Allan Kielstra , Gita Koblents , Kevin Stoodley, Inlining java native calls at runtime, Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments, June 11-12, 2005, Chicago, IL, USA
[doi> 10.1145/1064979.1064997]
|
 |
22
|
John Steven , Pravir Chandra , Bob Fleck , Andy Podgurski, jRapture: A Capture/Replay tool for observation-based testing, Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis, p.158-167, August 21-24, 2000, Portland, Oregon, United States
|
| |
23
|
|
| |
24
|
UNIX System Certification, available at http://www.opengroup.org/certification/unix-home.html
|
 |
25
|
|
| |
26
|
XML Parser for Java, available at http://www.alphaworks.ibm.com/tech/xml4j
|
| |
27
|
|
| |
28
|
zlib, available at http://www.gzip.org/zlib/
|
|