ACM Home Page
Please provide us with feedback. Feedback
Quicksilver: a quasi-static compiler for Java
Full text PdfPdf (748 KB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications table of contents
Minneapolis, Minnesota, United States
Pages: 66 - 82  
Year of Publication: 2000
ISBN:1-58113-200-X
Also published in ...
Authors
Mauricio Serrano  IBM T. J. Watson Research Center, P.O. Box 218, Yorktown Heights, NY
Rajesh Bordawekar  IBM T. J. Watson Research Center, P.O. Box 218, Yorktown Heights, NY
Sam Midkiff  IBM T. J. Watson Research Center, P.O. Box 218, Yorktown Heights, NY
Manish Gupta  IBM T. J. Watson Research Center, P.O. Box 218, Yorktown Heights, NY
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 13,   Downloads (12 Months): 43,   Citation Count: 21
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/353171.353176
What is a DOI?

ABSTRACT

This paper presents the design and implementation of the Quicksilver1 quasi-static compiler for Java. Quasi-static compilation is a new approach that combines the benefits of static and dynamic compilation, while maintaining compliance with the Java standard, including support of its dynamic features. A quasi-static compiler relies on the generation and reuse of persistent code images to reduce the overhead of compilation during program execution, and to provide identical, testable and reliable binaries over different program executions. At runtime, the quasi-static compiler adapts pre-compiled binaries to the current JVM instance, and uses dynamic compilation of the code when necessary to support dynamic Java features. Our system allows interprocedural program optimizations to be performed while maintaining binary compatibility. Experimental data obtained using a preliminary implementation of a quasi-static compiler in the Jalapeño JVM clearly demonstrates the benefits of our approach: we achieve a runtime compilation cost comparable to that of baseline (fast, non-optimizing) compilation, and deliver the runtime program performance of the highest optimization level supported by the Jalapeño optimizing compiler. For the SPECjvm98 benchmark suite, we obtain a factor of 104 to 158 reduction in the runtime compilation overhead relative to the Jalapeño optimizing compiler. Relative to the better of the baseline and the optimizing Jalapeño compilers, the overall performance (taking into account both runtime compilation and execution costs) is increased by 9.2% to 91.4% for the SPECjvm98 benchmarks with size 100, and by 54% to 356% for the (shorter running) SPECjvm98 benchmarks with size 10.


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
 
6
A. Azevedo, A. Nicolau, and J. Hummel. An annotation aware Java virtual machine implementation. In Proc. ACM SIGPLAN I999 Java Grande Conference, June 1999.
 
7
 
8
Peter Buhler and Thomas Eirich. private communication.
9
10
 
11
Hewlett-Packard Company. Chai products. http ://www.hp.com/emso/products/chaivm.
12
 
13
Microsoft Corporation. MS SDK for Java 4.0. http ://www.microsoft.com/java/vm.htm.
 
14
The Standard Performance Evaluation Corporation. SPEC JVM98 Benchmarks, 1998. http ://www.spec.org/osg/jvm98.
 
15
 
16
 
17
Encyclopedia Britannica Online. Information available via search at http://www.eb.com.
 
18
Proposed Federal Information Processing Standard for Secure Hash Standard. Federal Register, 57(21):3747-3749, 31, January 1992.
 
19
R. Fitzgerald, T. Knoblock, E. Ruf, B. Steensgard, and D. Tarditi. Marmot: An optimizing compiler for Java. Technical Report 33, Microsoft Research, June 1999.
 
20
21
 
22
The Java Hotspot Pen%rmance Engine Architecture. http://java.sun.com/products/hotspot/ whitepaper, html.
 
23
NaturalBridge Inc. BuUetTrain optimizing compiler and rtmtime for JVM bytecodes. http://www.naturalbridge.com/bullettrain.html.
 
24
 
25
 
26
Jove. Jove, super optimizing deployment environment for Java. http://www.instantiations.com/javaspeed/ jovereport, htm.
 
27
28
29
 
30
 
31
Sun Microsystems. Java2 Platform, Standard Edition Documentation. http://java.sun.com/docs/index.html.
 
32
Sun Microsystems. Embedded Java(TM) application environment. http://j ava. sun. com/product s/embeddedj ava/.
33
 
34
 
35
P. Richards and D. Hicks. Virtual integration. AS/400, pages 50-56, March 1998.
 
36
 
37
V. Seshadri. IBM High Performance Compiler for Java. AIXpert Magazine, September 1997. http ://www.developer.ibm.com/library/aixpert.
38
 
39
 
40
Tower Technology Corporation. Tower J3 - a new generation native Java compiler and runtime environment. http://www.towerj.com/products/whitepapergnj.shtml.
 
41

CITED BY  21

INDEX TERMS

Primary Classification:
  D. Software
  D.3 PROGRAMMING LANGUAGES
      D.3.4 Processors
          Subjects: Compilers

Collaborative Colleagues:
Mauricio Serrano: colleagues
Rajesh Bordawekar: colleagues
Sam Midkiff: colleagues
Manish Gupta: colleagues