Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/504282.504296acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

A dynamic optimization framework for a Java just-in-time compiler

Published: 01 October 2001 Publication History
  • Get Citation Alerts
  • Abstract

    The high performance implementation of Java Virtual Machines (JVM) and just-in-time (JIT) compilers is directed toward adaptive compilation optimizations on the basis of online runtime profile information. This paper describes the design and implementation of a dynamic optimization framework in a production-level Java JIT compiler. Our approach is to employ a mixed mode interpreter and a three level optimizing compiler, supporting quick, full, and special optimization, each of which has a different set of tradeoffs between compilation overhead and execution speed. a lightweight sampling profiler operates continuously during the entire program's exectuion. When necessary, detailed information on runtime behavior is collected by dynmiacally generating instrumentation code which can be installed to and uninstalled from the specified recompilation target code. Value profiling with this instrumentation mechanism allows fully automatic code specialization to be performed on the basis of specific parameter values or global data at the highest optimization level. The experimental results show that our approach offers high performance and a low code expansion ratio in both program startup and steady state measurements in comparison to the compile-only approach, and that the code specialization can also contribute modest performance improvement

    References

    [1]
    A.R. Adl-Tabatabai, M. Ciemiak, C.Y. Lueh, V.M. Parikh, and J.M. Stichnoth. Fast, Effective Code Generation in a Just-in- Time Java Compiler. In Proceedings of the ACM SIGPLAN '98 Conference on Programming Language Design and Implementation, pp. 280-290, Jun. 1998.]]
    [2]
    O. Agesen and D. Detlefs. Mixed-mode Byteeode Execution. Technical Report SMLI TR-2000-87, Sun Microsystems, 2000.]]
    [3]
    M. Arnold, S. Fink, D. Grove, M. Hind, and P.F. Sweeney. Adaptive Optimizations in the Jalapefio JVM. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages & Applications, OOPSLA '00, Oct. 2000.]]
    [4]
    M. Arnold, S. Fink, D. Grove, M. Hind, and P.F. Sweeney. Adaptive Optimizations in the Jalapefio JVM: The Controller's Analytical Model. In Proceedings of the ACM SIGPLAN Workshop on Feedback-Directed and Dynamic Optimization, FDDO-3, Dec. 2000.]]
    [5]
    M. Arnold, B.G. Ryder. A Framework for Reducing the Cost of Instrumented Code. In Proceedings of the A CM SIGPLAN '01 Conference on Program Language Design and Implementation, pp. 168-179, Jun. 2001.]]
    [6]
    J. Auslander, M. Philipose, C. Chambers, S.J. Eggers, and B.N. Bershad. Fast, Effective Dynamic Compilation. In Proceedings of the ACM SIGPLAN '96 Conference on Programming Language Design andlmplementation, pp. 149-158, May 1996.]]
    [7]
    T. Autrey and M. Wolfe. Initial Results for Glacial Variable Analysis. In Proceedings of the 9th International Workshop on Languages and Compilers for Parallel Computing, Aug. 1996.]]
    [8]
    V. Bala, E. Duesterwald, and S. Banerjia. Dynamo: A Transparent Dynamic Optimization System. In Proceedings of the ACM SIGPLAN '00 Conference on Programming Language Design andlmplementation, pp. 1-12, Jun. 2000.]]
    [9]
    R.G. Burger and R.K. Dybvig. An infrastructure for Profile- Driven Dynamic Recompilation, In ICCL '98, the IEEE Computer Society International Conference on Computer Languages, May 1998.]]
    [10]
    M.G. Burke, J.D. Choi, S. Fink, D. Grove, M. Hind, V. Sarkar, M. Serrano, V.C. Sreedhar, H. Srinivasan, and J. Whaley. The Jalapefio Dynamic Optimizing Compiler for Java, In Proceedings' of the ACM SIGPLAN Java Grande Conference, pp. 129- 141, Jun. 1999]]
    [11]
    B. Calder, P. Feller, and A. Eustace. Value Profiling. In 30th International Conference on Microarchitecture, pp. 259-269, Dec. 1997.]]
    [12]
    C. Chambers and D. Ungar. Customization: Optimizing Compiler Technology for SELF, a Dynamically-Typed Object- Oriented Programming Languages. In Proceedings of the A CM SIGPLAN '89 Conference on Programming Language Design andlmplementation, pp. 146-160, Jul. 1989.]]
    [13]
    M. Ciemiak, G.Y. Lueh, and J.M. Stiehnoth. Practicing JUDO: Java Under Dynamic Optim/zations. In Proceedings of the ACM SIGPLAN '00 Conference on Programming Language Design andlmplementation, pp. 13-26, Jun. 2000.]]
    [14]
    C. Consel and F. Noel. A General Approach for Run-Time Specialization and its Application to C. In Conference Record of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 145-156, Jan. 1996]]
    [15]
    J. Dean, C. Chambers, and D. Grove. Selective Specialization for Object-Oriented Languages. In Proceedings of the ACM SIGPLAN '95 Conference on Programming Language Design andlmplementation, pp. 93-102, Jun. 1995.]]
    [16]
    J. Dean and C. Chambers. Towards Better Inlining Decisions Using Inlining Trials. In Proceedings of the ACM SIGPLAN '94 Conference on LISP and Functional Programming, pp. 273-282, Jun. 1994.]]
    [17]
    D. Detlefs and O. Agesen. Inlining of Virtual Methods. In the 13th European Conference on Object-Oriented Programming, 1999.]]
    [18]
    J. Gosling, B. Joy, and G. Steele. The Java Language Specification. Addison-Wesley, 1996.]]
    [19]
    B. Grant, M. Philipose, M. Mock, C. Chambers,and S.J. Eggers. An Evaluation of Staged Run-Time Optimizations in DyC. In Proceedings of the A CM SIGPLAN '99 Conference on Programming Language Design and Implementation, pp. 293- 304, May 1999.]]
    [20]
    U. Holzle. Adaptive Optimization for SELF: Reconciling High Performance with Exploratory Programming. Ph.D. Thesis, Stanford University, CS-TR-94-1520, Aug. 1994.]]
    [21]
    U, Holzle and D. Ungar. Reconciling responsiveness with performanee in pure object-oriented languages. ACM Transactions on Programming Languages and estems, 18(4):355-400, Jul. 1996.]]
    [22]
    IBM Corporation Inc. "WebSphere Software Platform", documentation available at http://www.ibn~eom/websphere 2000.]]
    [23]
    K. Ishizaki, M. Kawahito, T. Yasue, M. Takeuehi, Y. Ogasawara, T. Suganuma, T. Onodera, H. Komatsu, and T. Nakatani. Design, Implementation, and Evaluation of Optimizations in a Just-In-Time Compiler. In Proceedings of ACM SIGPLAN Java Grande Conference, pp. 119-128, Jun. 1999.]]
    [24]
    K. Ishizaki, M. Kawahito, T. Yasue, H. Komatsu, and T. Nakatani. A Study of Devirtualization Techniques for a Java Just-In- Time Compiler. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages & Applications, OOPSLA '00, pp. 294-310, Oct. 2000.]]
    [25]
    Just System Corp. "IchitaroArk for Java", available at http://www.justsystem.corn/arldindex.html 1998.]]
    [26]
    M. Kawahito, H. Komatsu, and T. Nakatani. Effective Null Pointer Check Elimination Utilizing Hardware Trap. In Proceedings of the 9th International Conference on Architectural Support on Programming Languages and Operating Systems, Nov. 2000.]]
    [27]
    A. Krall. Efficient JavaVM Just-in-Time Compilation. In Proceedings of International Conference on Parallel Architecture and Compilation Technique, Oct. 1998.]]
    [28]
    R. Marlet, C. Consel, and P. Boinot. Efficient Incremental Run-Time Specialization for Free. In Proceedings of the ACM SIGPLAN '99 Conference on Programming Language Design and Implementation, pp. 281-292, Jun. 1999.]]
    [29]
    T. Ogasawara, H. Komatsu, and T. Nakatani. A Study of Exception Handling and its Dynamic Optimization for Java. In Proceedings of the ACM SIGPLAN Conference on Object- Oriented Programming, Systems, Languages & Applications, OOPSLA '01, Oct. 2001.]]
    [30]
    M. Paleezny, C. Viek, and C. Click. The Java HotSpot Server Compiler. In Proceedings of the Java Virtual Machine Research and Technology Symposium (JVM '01), pp. 1-12, Apr. 2001.]]
    [31]
    M.P. Plezbert and R.K. Cytron. Does "Just in Time" = "Better Late than Never"?. In Conference Record of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 120-131, Jan. 1997.]]
    [32]
    M. Poletto, D. Engler, and M.F. Kaashoek. tee: A System for Fast, Flexible, and High-Level Dynamic Code Generation. In Proceedings of the ACM SIGPLAN'97 Conference on Programming Language Design and Implementation, pp. 109-121, Jun. 1997.]]
    [33]
    V.C. Sreedhar, M. Burke, and J.D. Choi. A Framework for In. terprocedural Optimization in the Presence of Dynamic Class Loading. In Proceedings of the ACM SIGPLAN '00 Conference of Program Language Design and Implementation, pp. 196-207, Jun. 2000.]]
    [34]
    M.D. Smith. Overcoming the Challenges to Feedback-Directed Optimization. In Proceedings of the ACM SIGPLAN Workshop on Dynamic and Adaptive Compilation and Optimization (Dynamo '00), pp. 1-11, Jan. 2000.]]
    [35]
    Standard Performance Evaluation Corporation. SPECjvm98 Benchmarks, available at http://www.spec.org/osg/jvrn98 and SPECjbb-2000 available at http://www.spec.org/osg/jbb2000.]]
    [36]
    T. Suganuma, T. Ogasawara, M. Takeuchi, T. Yasue, M. Kawahito, K. Ishizaki, H. Komatsd, and T. Nakatani. Overview of the IBM Java Just-in-Time Compiler, IBM Systems Journal, 39(1), 2000.]]
    [37]
    Sun Microsysterus. The Java Hotspot Performance Engine Architecture. White paper available at http://java.sun.com/products/hotspot/index.html, May. 2001.]]
    [38]
    Sun Microsystems. Hot Java TM Browser available at http://java.sun.eorn/products/hotj ava/index.html 1997.]]
    [39]
    O. Traub, S. Schechter, and M.D. Smith. Ephemeral Instrumentation for Lightweight Program Profiling. Technical Report, Harvard University, 1999.]]
    [40]
    J. Whaley. A Portable Sampling-Based Profiler for Java Virtual Machines. In Proceedings of the ACM SIGPLAN Java Grande Conference, Jun. 2000.]]
    [41]
    J. Whaley. Dynamic Optimization through the Use of Automatie Runtime Specialization. Master's thesis, Massachusetts Institute of Technology, May 1999.]]
    [42]
    Wind River Systems Inc. "IceStorm Browser 5", available at http://www.iceso ft.no/ieebrowser5/index.htm12000.]]
    [43]
    B.S. Yang, S.M. Moon, S. Park, J. Lee, S. Lee, J. Park, Y.C. Chung, S. Kim, K. Ebeioglu, and E. Altman. LaTTe: A Java VM Just-in-Time Compiler with Fast and Efficient Register Allocation. In Proceedings of International Conference on Parallel Architecture and Compilation Technique, Oct. 1999.]]

    Cited By

    View all
    • (2024)Pronghorn: Effective Checkpoint Orchestration for Serverless Hot-StartsProceedings of the Nineteenth European Conference on Computer Systems10.1145/3627703.3629556(298-316)Online publication date: 22-Apr-2024
    • (2019)Not so fastProceedings of the 2019 USENIX Conference on Usenix Annual Technical Conference10.5555/3358807.3358817(107-120)Online publication date: 10-Jul-2019
    • (2018)PAYJIT: space-optimal JIT compilation and its practical implementationProceedings of the 27th International Conference on Compiler Construction10.1145/3178372.3179523(71-81)Online publication date: 24-Feb-2018
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    OOPSLA '01: Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
    October 2001
    382 pages
    ISBN:1581133359
    DOI:10.1145/504282
    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]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 October 2001

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Article

    Conference

    OOPSLA01
    Sponsor:

    Acceptance Rates

    OOPSLA '01 Paper Acceptance Rate 27 of 145 submissions, 19%;
    Overall Acceptance Rate 268 of 1,244 submissions, 22%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)62
    • Downloads (Last 6 weeks)3

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Pronghorn: Effective Checkpoint Orchestration for Serverless Hot-StartsProceedings of the Nineteenth European Conference on Computer Systems10.1145/3627703.3629556(298-316)Online publication date: 22-Apr-2024
    • (2019)Not so fastProceedings of the 2019 USENIX Conference on Usenix Annual Technical Conference10.5555/3358807.3358817(107-120)Online publication date: 10-Jul-2019
    • (2018)PAYJIT: space-optimal JIT compilation and its practical implementationProceedings of the 27th International Conference on Compiler Construction10.1145/3178372.3179523(71-81)Online publication date: 24-Feb-2018
    • (2018)Fog-Assisted Translation: Towards Efficient Software Emulation on Heterogeneous IoT Devices2018 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)10.1109/IPDPSW.2018.00196(1268-1277)Online publication date: May-2018
    • (2017)Performance competitiveness of a statically compiled language for server-side Web applications2017 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS)10.1109/ISPASS.2017.7975266(13-22)Online publication date: Apr-2017
    • (2016)Don't get caught in the cold, warm-up your JVMProceedings of the 12th USENIX conference on Operating Systems Design and Implementation10.5555/3026877.3026907(383-400)Online publication date: 2-Nov-2016
    • (2016)CAOSProceedings of the ACM International Conference on Computing Frontiers10.1145/2903150.2903151(110-118)Online publication date: 16-May-2016
    • (2015)Adaptive Correction of Sampling Bias in Dynamic Call GraphsACM Transactions on Architecture and Code Optimization10.1145/284080612:4(1-24)Online publication date: 8-Dec-2015
    • (2014)Emulator-oriented tiny processors for unreliable post-silicon devices: A case study2014 19th Asia and South Pacific Design Automation Conference (ASP-DAC)10.1109/ASPDAC.2014.6742871(85-90)Online publication date: Jan-2014
    • (2013)Idiom recognition framework using topological embeddingACM Transactions on Architecture and Code Optimization10.1145/251243110:3(1-34)Online publication date: 16-Sep-2013
    • Show More Cited By

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media