10.1145/349299.349306acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedings
Article

Practicing JUDO: Java under dynamic optimizations

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. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4.A.V. Aho, R. Sethi, and J. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, Reading, MA, second edition, 1986.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5.K. Arnold and J. Gosling. The Java Programming Language. Second Edition. Addison-Wesley, 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8.J. Dean, D. Grove, and C. Chambers. Optimization of Object- Oriented Programs Using Static Class Hierarchy Analysis. ECOOP 1995, pp. 71-101.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9.D. Detlefs and O. Agesen, Inlining of Virtual Methods. ECOOP 1999, pp. 258-278.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12.J. Gosling, B. Joy and G. Steele. The Java Language Specification. Addison-Wesley, 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16.Intel Corp. Intel Architecture Software Developer's Manual, order number 243192. 1997]]Google ScholarGoogle Scholar
  17. 17.Intel Corp. Intel IA-64 Architecture Software Developer's Manual, order number 245319. 2000]]Google ScholarGoogle Scholar
  18. 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 ScholarGoogle Scholar
  19. 19.T. Lindholm and F. Yellin. The Java Virtual Machine Specification. Second Edition. Addison-Wesley, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 20.M. Leone and R. K. Dybvig. Dynamo: A Staged Compiler Architecture for Dynamic Program Optimization. Technical Report #490, Indiana University, 1997]]Google ScholarGoogle Scholar
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23.Standard Performance Evaluation Corporation. SPEC JVM98 Benchmarks. Available at http://www.spec.org/osg/jvm98]]Google ScholarGoogle Scholar
  24. 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 ScholarGoogle Scholar
  25. 25.Sun Microsystems, Inc. The Java Hotspot Performance Engine Architecture. Available at http://java, sun.com/- products/hotspot/whitepaper, html.]]Google ScholarGoogle Scholar

Index Terms

  1. Practicing JUDO: Java under dynamic optimizations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!