Java Just-In-Timeコンパイラにおける最適化とその評価
スポンサーリンク
概要
- 論文の詳細を見る
Javaはプログラムの安全性のために、例外チェックやポインタを排除したオブジェクトへのアクセスなど、他の言語より大きなオーバヘッドを持つ。またプログラムの柔軟性を提供するために、型検査、動的なクラスリンク、オブジェクトを伴ったインスタンスメソッド呼び出し、を提供している。これらの特徴を失うことなくプログラムの性能を改善するためには、実行時にバイトコードからネイティブコードへコンパイルを行うJust-In-Time (JIT)コンパイラが必須である。本稿では、JITコンパイラへ実装した以下の最適化、定数伝搬、不要コードの除去、例外チェックの除去、共通部分式の除去、型検査の単純化、メソッド呼び出しのインライン展開、メソッド呼び出しの一意決定、について述べる。さらに、9つのプログラムの実行結果より、これらの最適化が効果的であることを示す。
- 社団法人電子情報通信学会の論文
- 1999-08-05
著者
-
小野寺 民也
日本アイ・ビー・エム
-
菅沼 俊夫
日本アイ・ビー・エム株式会社東京基礎研究所
-
石崎 一明
日本アイ・ビー・エム株式会社東京基礎研究所
-
小松 秀昭
日本アイ・ビー・エム株式会社東京基礎研究所
-
竹内 幹雄
日本アイ・ビー・エム(株)東京基礎研究所
-
安江 俊明
日本アイ・ビー・エム(株)東京基礎研究所
-
小松 秀昭
日本アイ・ビー・エム株式会社 東京基礎研究所
-
川人 基弘
日本アイ・ビー・エム(株)東京基礎研究所
-
今野 和浩
日本アイ・ビー・エム(株)東京基礎研究所
-
小笠原 武史
日本アイ・ビー・エム(株)東京基礎研究所
-
小笠原 武史
日本アイ・ビー・エム東京基礎研究所
-
石崎 一明
日本アイ・ビー・エム(株)
-
川人 基弘
日本アイ・ビー・エム株式会社東京基礎研究所
関連論文
- OLTPのための自動グループコミット手法の提案(ストレージ 並列分散データベース,データ工学論文)
- ECUソフトウェアのシミュレーション実行時における状態方程式の遷移解析手法 (ディペンダブルコンピューティング)
- ECUソフトウェアのシミュレーション実行時における状態方程式の遷移解析手法 (コンピュータシステム)
- ループパーティショニングを用いたショートベクトル化技法
- ストリーム・コンピューティング時代を開く基盤ソフトウェアIBM InfoSphere Streams (特集 BAO--未来を開く高度なインテリジェンス)
- 6N-4 レジスタ干渉グラフの分割による高速化手法に関する研究(数値計算とコンパイラ技術,学生セッション,アーキテクチャ)
- 非再試行型レジスタ割付けとその評価
- 生存区間分割時に発生する偽干渉を避けるための同時コピー中間コードの利用(ARC-6 : ソフトウェア最適化,2007年並列/分散/協調処理に関する『旭川』サマー・ワークショップ(SWoPP旭川2007))
- 分岐の相関を利用した効率的なパスプロファイリング
- 並列トランザクショナルアプリケーションのためのプログラミングフレームワーク
- 浮動小数点演算の正確さに関する投機を用いたJavaの数値計算の高速化
- スクリプト言語コンパイラのための評価による最適化
- マルチコア・システムにおける SAP Java アプリケーション・サーバのスケーラビリティ性能比較
- 並列コピーの導入による生存区間分割手法の性能向上
- Javaにおける例外処理の実行時情報を利用した最適化
- コンパイル速度の向上を目的とした非反復型レジスタ割付け手法
- 頻出メソッド管理テーブルを用いたinvokeinterface命令の実行高速化手法
- ECUソフトウェアのシミュレーション実行時における状態方程式の遷移解析手法
- ECUソフトウェアのシミュレーション実行時における状態方程式の遷移解析手法
- ECUソフトウェアのシミュレーション実行時における状態方程式の遷移解析手法
- ECUソフトウェアのシミュレーション実行時における状態方程式の遷移解析手法
- SIMD命令を用いるUTF-8文字列デコード処理の高速化
- 動的スクリプト言語処理系が動作するJava仮想マシンのメモリ分析
- 再現コンパイル手法を用いたJava JITコンパイラの問題判別
- PowerPCプロセッサの特性を考慮した高速Javaバイトコードインタプリタの構成法
- 動的コンパイラのための実行時分岐予測を用いた最適化手法
- ECUソフトウェアのシミュレーション実行時における状態方程式の遷移解析手法
- ECUソフトウェアのシミュレーション実行時における状態方程式の遷移解析手法
- ECUソフトウェアのシミュレーション実行時における状態方程式の遷移解析手法
- VMX命令セットを用いる高速なソートアルゴリズム(数値アルゴリズム)
- 非対称なスピンロックの提案とそのJavaへの応用
- スレッド局所性を利用したJavaロックの高速化
- ポータブルなPrologコンパイラーの実現
- JSIAIワークステーション(7) : Prologコンパイラの評価
- JSIAIワークステーション(6) : Prologコンパイラの最適化技法
- JSIAIワークステーション(5) : Prologコンパイラの概要と設計方針
- プログラムの信頼性向上を目的とした補助スレッドの効率的利用(ジョブスケジューリング, 「ハイパフォーマンスコンピューティングとアーキテクチャの評価」に関する北海道ワークショップ(HOKKE-2005))
- プログラムの信頼性向上を目的とした補助スレッドの効率的利用(ジョブスケジューリング, 「ハイパフォーマンスコンピューティングとアーキテクチャの評価」に関する北海道ワークショップ(HOKKE-2005))
- レジスタ生存グラフを用いたレジスタ割付けへのプロセッサ並列度の考慮
- B-001 補助スレッドによるソフトウェアの信頼性向上(B.ソフトウェア)
- 領域分割レジスタ生存グラフを用いたレジスタ割付けへの動的計画法の適用
- C-13 レジスタの有効利用を考慮した部分冗長性除去(計算機アーキテクチャと最適化,C.アーキテクチャ・ハードウェア)
- JNI プログラム中のバグ発見
- Java Just-In-Timeコンパイラにおける最適化とその評価
- 第1回プログラミングおよび応用のシステムに関するワークショップ(SPA '98)の報告
- オブジェクト指向言語におけるメッセージ送信の高速化技法
- 静的解析によるメソッド探索の高速化
- メソッドの仮翻訳によるオブジェクト指向言語の最適化
- OOPSLA'94参加報告
- 5. 保守的ごみ集め (<特集> ごみ集めの基礎と最近の動向)
- C ベースのオブジェクト指向言語における再コンパイル時間の短縮
- オブジェクト指向データベースにおけるC++プログラム情報の表現と蓄積
- Tools Pacific '90に参加して
- オブジェクト指向言語COB : インプリメンテーション
- オブジェクト指向言語CDB : 設計方針と言語仕様
- 90-4 C++の多重継承
- SILSを対象としたMCUペリフェラルプログラムの自動コード生成
- SILSを対象としたMCUペリフェラルプログラムの自動コード生成
- SILSを対象としたMCUペリフェラルプログラムの自動コード生成
- SILSを対象としたMCUペリフェラルプログラムの自動コード生成
- SILSを対象としたMCUペリフェラルプログラムの自動コード生成
- SILSを対象としたMCUペリフェラルプログラムの自動コード生成
- SILSを対象としたMCUペリフェラルプログラムの自動コード生成
- SILSを対象としたMCUペリフェラルプログラムの自動コード生成 (ディペンダブルコンピューティング)
- SILSを対象としたMCUペリフェラルプログラムの自動コード生成 (コンピュータシステム)
- 静的プロファイルを用いたファイル・プリフェッチ手法の提案
- HPF処理系の実現と評価
- ワークステーション・クラスタにおける動的なデータ交信/実行管理方法
- コード書換えによる動的メソッド呼び出しの直接Devirtualization
- Javaプログラムにおいて例外による順序制約を投機的命令移動を用いて除去する方法
- コード書換えによる動的メソッド呼び出しの直接devirtualization
- 分散メモリ並列計算機のためのコンパイラによる通信遅延隠蔽アルゴリズム
- 3. SP2のためのHPFコンパイラにおける最適化技術 (>特集
- HPFにおける実行時の通信解析オーバヘッドの削減手法
- HPFコンパイラにおける並列化手法
- 分散並列計算機のための並列性抽出法
- 動的コンパイラにおける実行時経路情報の構造的収集手法の提案
- 大域的なコード移動を使った複数式の実行コスト削減法
- Java言語に対する投機的なメモリアクセスの最適化手法
- 冗長な符号拡張命令の除去手法
- Java言語に対する効果的なNullチェックの最適化手法
- 命令レベル並列アーキテクチャのためのループアンローリングおよびソフトウェアパイプライニング適用技法
- コンパイル時未定義ループ不変値を添字式に持つループの最内ループ並列化の1手法
- ロック制御型同期複製ミドルウェアの提案(分散データベース,データ工学論文)
- 細粒度並列計算機NLITHの実現とその評価
- 細粒度並列計算機NLITHの概要
- マルチプロセッサシステムにおけるリダクションオペレーション
- 分散オブジェクトを用いてワークフローを実現するシステムモデル
- バイトコードパターンマッチによるJavaインタプリタの高速化手法
- データ並列言語における集団通信の実行時認識手法
- データ依存不確定ループの最内ループ並列化
- オブジェクト指向フレームワークによる異なるシステム間での表現変換(2)実現
- オブジェクト指向フレームワークによる異なるシステム間での表現変換(1)分析
- 分散オブジェクトに基づくアプリケーションの実行制御
- 依存グラフを用いてアーキテクチャ独立な最適化と対象計算機の資源制約を調整する手法
- 非常に偏った条件分岐が存在するプログラムのデータフロー最適化
- 実行環境が異なる2つのコード間の遷移を行う際の効果的な最適化手法
- 命令レベル並列計算機上で並列実行する領域の選択を高速に行う方法
- 高可用キー・バリュー ストアにおけるデータ鮮度に基づいた一貫性の提案とその実装
- 並列・分散プログラミング言語X10によるHPCアプリケーションの記述