skip to main content
10.1145/349299.349306acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article
Free Access

Practicing JUDO: Java under dynamic optimizations

Published:01 May 2000Publication History

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

          Recommendations

          Comments

          Login options

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

          Sign in
          • Published in

            cover image ACM Conferences
            PLDI '00: Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
            August 2000
            358 pages
            ISBN:1581131992
            DOI:10.1145/349299

            Copyright © 2000 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 1 May 2000

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • Article

            Acceptance Rates

            PLDI '00 Paper Acceptance Rate30of173submissions,17%Overall Acceptance Rate406of2,067submissions,20%

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader