ACM Home Page
Please provide us with feedback. Feedback
Replay compilation: improving debuggability of a just-in-time compiler
Full text PdfPdf (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
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 11,   Downloads (12 Months): 66,   Citation Count: 2
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1167473.1167493
What is a DOI?

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
9
 
10
Jigsaw - W3C's Server, available at http://www.w3.org/Jigsaw/
 
11
 
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
21
22
 
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/


Collaborative Colleagues:
Kazunori Ogata: colleagues
Tamiya Onodera: colleagues
Kiyokuni Kawachiya: colleagues
Hideaki Komatsu: colleagues
Toshio Nakatani: colleagues