Java Just-In-Time コンパイラにおける最適化とその評価  [in Japanese] Design, Implementation and Evaluation of Optimizations in a Java Just-In-Time Compiler  [in Japanese]

Search this Article

Author(s)

Abstract

Javaはプログラムの安全性のために、例外チェックやポインタを排除したオブジェクトへのアクセスなど、他の言語より大きなオーバヘッドを持つ。またプログラムの柔軟性を提供するために、型検査、動的なクラスリンク、オブジェクトを伴ったインスタンスメソッド呼び出し、を提供している。これらの特徴を失うことなくプログラムの性能を改善するためには、実行時にバイトコードからネイティブコードへコンパイルを行うJust-In-Time (JIT)コンパイラが必須である。本稿では、JITコンパイラへ実装した以下の最適化、定数伝搬、不要コードの除去、例外チェックの除去、共通部分式の除去、型検査の単純化、メソッド呼び出しのインライン展開、メソッド呼び出しの一意決定、について述べる。さらに、9つのプログラムの実行結果より、これらの最適化が効果的であることを示す。

The Java language incurs a runtime overhead for exception checks and object accesses without an interior pointer in order to ensure safety. It also requires type inclusion test, dynamic class loading, and dynamic method calls in order to ensure flexibility. A "Just-In-Time" (JIT) compiler generates native code from Java byte code at runtime. It must improve the runtime performance without compromising the safety and flexibility of the Java language. We designed and implemented effective optimizations for the JIT compiler, such as constant propagation, dead code elimination, exception check elimination, common subexpression elimination, simple type inclusion test, method inlining, and devirtualizatiion of dynamic method call. We evaluate the performance benefits of these optimizations based on various statistics collected using SPECjvm98 and two Java Soft applications. Each optimization contributes to an improvement in the performance of the programs.

Journal

  • IEICE technical report. Computer systems

    IEICE technical report. Computer systems 99(252), 17-24, 1999-08-05

    The Institute of Electronics, Information and Communication Engineers

References:  17

Cited by:  1

Codes

  • NII Article ID (NAID)
    110003180501
  • NII NACSIS-CAT ID (NCID)
    AN10013141
  • Text Lang
    JPN
  • Article Type
    Journal Article
  • ISSN
    09135685
  • NDL Article ID
    4851663
  • NDL Source Classification
    ZN33(科学技術--電気工学・電気機械工業--電子工学・電気通信)
  • NDL Call No.
    Z16-940
  • Data Source
    CJP  CJPref  NDL  NII-ELS 
Page Top