ABSTRACT
A high-performance implementation of a Java Virtual Machine (JVM) consists of efficient implementation of Just-In-Time (JIT) compilation, exception handling, synchronization mechanism, and garbage collection (GC). These components are tightly coupled to achieve high performance. In this paper, we present some static anddynamic techniques implemented in the JIT compilation and exception handling of the Microprocessor Research Lab Virtual Machine (MRL VM), i.e., lazy exceptions, lazy GC mapping, dynamic patching, and bounds checking elimination. Our experiments used IA-32 as the hardware platform, but the optimizations can be generalized to other architectures.
References
- 1.A. Adl-Tabatabai, M. Ciemiak, G.-Y. Lueh, V.M. Parikh, and J.M. Sfichnoth. Fast, Effective Code Generation in a Just-In- Time Java Compiler. Conference on Programming Language Design and Implementation, May 1998, pp. 280-290.]] Google Scholar
Digital Library
- 2.A. Adl-Tabatabai and T. Gross. Detection and Recovery of Endangered Variables Caused by Instruction Scheduling. Conference on Programming Language Design and Implementation, May 1993, pp. 13-25.]] Google Scholar
Digital Library
- 3.A. Adl-Tabatabai and T. Gross. Source-Level Debugging of Scalar Optimized Code. Conference on Programming Language Design and Implementation, May 1996, pp. 33-42.]] Google Scholar
Digital Library
- 4.A.V. Aho, R. Sethi, and J. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, Reading, MA, second edition, 1986.]] Google Scholar
Digital Library
- 5.K. Arnold and J. Gosling. The Java Programming Language. Second Edition. Addison-Wesley, 1997.]] Google Scholar
Digital Library
- 6.J. Auslander, M. Philipose, C. Chambers, S. Eggers, and B. Bershad. Fast, effective dynamic compilation. Conference on Programming Language Design and Implementation, May 1996, pp. 149-159.]] Google Scholar
Digital Library
- 7.M. Burke, J-D. Choi, S. Fink, D. Grove, M. Hind, V. Sarkar, M. Serrano, V. Sreedhar, H. Srinivasan, and J. Whaley. The Jalapefio Dynamic Optimizing Compiler for Java. Java Grande Conference, 1999, pp. 129-141.]] Google Scholar
Digital Library
- 8.J. Dean, D. Grove, and C. Chambers. Optimization of Object- Oriented Programs Using Static Class Hierarchy Analysis. ECOOP 1995, pp. 71-101.]] Google Scholar
Digital Library
- 9.D. Detlefs and O. Agesen, Inlining of Virtual Methods. ECOOP 1999, pp. 258-278.]] Google Scholar
Digital Library
- 10.D.R. Engler, W.C. Hsieh, and M.F. Kaashoek. 'C: A language for high-level, efficient, and machine-independent dynamic code generation. Symposium on Principles of Programming Languages, January 1996, pp. 131-144.]] Google Scholar
Digital Library
- 11.B. Grant, M. Philipose, M. Mock, C. Chambers, and S. Eggers, An Evaluation of Staged Run-Time Optimizations in DyC. Conference on Programming Language Design and Implementation, May 1999, pp. 293-304.]] Google Scholar
Digital Library
- 12.J. Gosling, B. Joy and G. Steele. The Java Language Specification. Addison-Wesley, 1996.]] Google Scholar
Digital Library
- 13.U. H61zle, C. Chambers, and D. Ungar. Optimizing Dynamically-Typed Objected-Oriented Languages With Ploymorphic Inline Caches. ECOOP'91 conference proceedings, 1991. Published as Springer Verlag Lecture Notes in Computer Science 512.]] Google Scholar
Digital Library
- 14.U. H61zle and D. Ungar. Optimizing Dynamically-Dispatched Calls with Run-Time Type Feedback. Conference on Programming Language Design and Implementation, Orlando, FL, June 1994, pp. 326-335.]] Google Scholar
Digital Library
- 15.U. H61zle, C. Chambers, and D. Ungar. Debugging Optimized Code with Dynamic Deoptimization. Conference on Programming Language Design and Implementation, June 1992, pp. 32-43.]] Google Scholar
Digital Library
- 16.Intel Corp. Intel Architecture Software Developer's Manual, order number 243192. 1997]]Google Scholar
- 17.Intel Corp. Intel IA-64 Architecture Software Developer's Manual, order number 245319. 2000]]Google Scholar
- 18.S. Lee, B.-Y. Yang, K. Ebcioglu and E. Altman. On-Demand Translation of Java Exception Handlers in the LaTTe JVM Just-In-Time Compiler. Workshop on Binary Translation. Newport Beach, CA. October 1999.]]Google Scholar
- 19.T. Lindholm and F. Yellin. The Java Virtual Machine Specification. Second Edition. Addison-Wesley, 1999.]] Google Scholar
Digital Library
- 20.M. Leone and R. K. Dybvig. Dynamo: A Staged Compiler Architecture for Dynamic Program Optimization. Technical Report #490, Indiana University, 1997]]Google Scholar
- 21.M. Plezbert and R. Cytron, Does "Just in Time"= "Better Late Than Never"? Symposium on Principles of Programming Languages, 1997, pp. 120-131.]] Google Scholar
Digital Library
- 22.J.M. Stichnoth, G.-Y. Lueh, and M. Ciemiak. Support for Garbage Collection at Every Instruction in a Java Compiler. Conference on Programming Language Design and Implementation, May 1999, pp. 118-127.]] Google Scholar
Digital Library
- 23.Standard Performance Evaluation Corporation. SPEC JVM98 Benchmarks. Available at http://www.spec.org/osg/jvm98]]Google Scholar
- 24.Sun Microsystems, Inc. Java Virtual Machine Debug -Interface Reference. Available at: http://java, sun.com/- products/j dk/1.3/doc s/guide/jpda/j vmdi- spec.html.]]Google Scholar
- 25.Sun Microsystems, Inc. The Java Hotspot Performance Engine Architecture. Available at http://java, sun.com/- products/hotspot/whitepaper, html.]]Google Scholar
Index Terms
Practicing JUDO: Java under dynamic optimizations





Comments