Design of the Java']Java HotSpot™ client compiler for Java']Java 6

被引:74
|
作者
Kotzmann, Thomas [1 ]
Wimmer, Christian [1 ]
Moessenboeck, Hanspeter [1 ]
Rodriguez, Thomas [2 ]
Russell, Kenneth [2 ]
Cox, David [2 ]
机构
[1] Johannes Kepler Univ Linz, Christian Doppler Lab Automated Software Engn, Inst System Software, Linz, Austria
[2] Sun Microsyst Inc, Santa Clara, CA 95054 USA
关键词
algorithms; languages; performance; !text type='Java']Java[!/text; compiler; just-in-time compilation; optimization; intermediate representation; register allocation; deoptimization;
D O I
10.1145/1369396.1370017
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Version 6 of Sun Microsystems' Java HotSpot (TM) VM ships with a redesigned version of the client just-in-time compiler that includes several research results of the last years. The client compiler is at the heart of the VM configuration used by default for interactive desktop applications. For such applications, low startup and pause times are more important than peak performance. This paper outlines the new architecture of the client compiler and shows how it interacts with the VM. It presents the intermediate representation that now uses static single-assignment (SSA) form and the linear scan algorithm for global register allocation. Efficient support for exception handling and deoptimization fulfills the demands that are imposed by the dynamic features of the Java programming language. The evaluation shows that the new client compiler generates better code in less time. The popular SPECjvm98 benchmark suite is executed 45% faster, while the compilation speed is also up to 40% better. This indicates that a carefully selected set of global optimizations can also be integrated in just-in-time compilers that focus on compilation speed and not on peak performance. In addition, the paper presents the impact of several optimizations on execution and compilation speed. As the source code is freely available, the Java HotSpot (TM) VM and the client compiler are the ideal basis for experiments with new feedback-directed optimizations in a production-level Java just-in-time compiler. The paper outlines research projects that add fast algorithms for escape analysis, automatic object inlining, and array bounds check elimination.
引用
收藏
页码:1 / 32
页数:32
相关论文
共 50 条
  • [1] The Java']Java HotSpot™ Server Compiler
    Paleczny, M
    Vick, C
    Click, C
    [J]. USENIX ASSOCIATION PROCEEDINGS JAVA(TM) VIRTUAL MACHINE RESEARCH AND TECHNOLOGY SYMPOSIUM, 2001, : 1 - 12
  • [2] Free Java']Java compiler
    不详
    [J]. DATAMATION, 1996, 42 (01): : 20 - &
  • [3] A certifying compiler for Java']Java
    Colby, C
    Lee, P
    Necula, GC
    Blau, F
    Plesko, M
    Cline, K
    [J]. ACM SIGPLAN NOTICES, 2000, 35 (05) : 95 - 107
  • [4] Java']Java client ahead-of-time compiler for embedded systems
    Hong, Sunghyun
    Kim, Jin-Chul
    Shin, Jin Woo
    Moon, Soo-Mook
    Oh, Hyeong-Seok
    Lee, Jaemok
    Choi, Hyung-Kyu
    [J]. ACM SIGPLAN NOTICES, 2007, 42 (07) : 63 - 72
  • [5] Compiling, assembling and executing Java']Java using Java']Java - Compiler construction using Java']Java
    Pedersen, JB
    Wagner, A
    [J]. PDPTA'2001: PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON PARALLEL AND DISTRIBUTED PROCESSING TECHNIQUES AND APPLICATIONS, 2001, : 1820 - 1826
  • [6] Client ahead-of-time compiler for embedded Java']Java platforms
    Hong, Sunghyun
    Kim, Jin-Chul
    Moon, Soo-Mook
    Shin, Jin Woo
    Lee, Jaemok
    Oh, Hyeong-Seok
    Choi, Hyung-Kyu
    [J]. SOFTWARE-PRACTICE & EXPERIENCE, 2009, 39 (03): : 259 - 278
  • [7] Java']Java Client Ahead-of-Time Compiler for Embedded Systems
    Hong, Sunghyun
    Kim, Jin-Chul
    Shin, Jin Woo
    Moon, Soo-Mook
    Oh, Hyeong-Seok
    Lee, Jaemok
    Choi, Hyung-Kyu
    [J]. LCTES'07: PROCEEDINGS OF THE 2007 ACM SIGPLAN-SIGBED CONFERENCE ON LANGUAGES, COMPILERS, AND TOOLS FOR EMBEDDED SYSTEMS, 2007, : 63 - 72
  • [8] java']javar: A prototype Java']Java restructuring compiler
    Bik, AJC
    Villacis, JE
    Gannon, DB
    [J]. CONCURRENCY-PRACTICE AND EXPERIENCE, 1997, 9 (11): : 1181 - 1191
  • [9] The JastAdd Extensible Java']Java Compiler
    Ekman, Torbjorn
    Hedin, Gorel
    [J]. ACM SIGPLAN NOTICES, 2007, 42 (10) : 1 - 17
  • [10] The JastAdd Extensible Java']Java Compiler
    Ekman, Torbjoern
    Hedin, Gorel
    [J]. OOPSLA: 22ND INTERNATIONAL CONFERENCE ON OBJECT-ORIENTED PROGRAMMING, SYSTEMS, LANGUAGES, AND APPLICATIONS, PROCEEDINGS, 2007, : 1 - 17