Javaにおけるコンテナ向けキャストの除去
スポンサーリンク
概要
- 論文の詳細を見る
Javaアプリケーションの実行性能を劣化させる要因の1つにキャストがある.キャストが必要となる主なケースの1つに,標準ライブラリが提供するクラスのうち,コンテナと呼ばれる,値を格納するためものの利用があるが,本論文では,コンテナの利用にともなうキャストを除去する最適化を提案する.この最適化では,Javaアプリケーション中にあるコンテナの利用箇所を検出し,検出した箇所向けのキャストがあるならば,その除去を試みる.除去の処理は,検出箇所で利用しているコンテナのクラスを,標準ライブラリのものから,個々の検出箇所向けに最適化したものに差し替えることで実現する.キャストが必要になる原因は,標準ライブラリが提供するコンテナのクラスが,primitive型の値を直接格納する機能や,格納する参照を特定のクラス型のものに制限する機能を提供しないことにある.したがって,個々の検出箇所向けに,これらの機能を提供するクラスを生成し,標準ライブラリのクラスの代わりに,生成したクラスを使えば,キャストを除去可能になる.最適化が実行速度に与える影響を,SPECjbb2005を使って評価したところ,21.3%高速化できることが分かった.
- 一般社団法人情報処理学会の論文
- 2008-06-26
著者
関連論文
- Javaにおけるコンテナ向けキャストの除去
- Java向け動的コンパイラによる冗長なインスタンス変数参照の削除
- Java向け動的コンパイラによる冗長なBox化の削除
- Java向けヒープに対する不正参照のページ保護による検出
- 脆弱性を考慮したJava向け動的コンパイラの可搬な設計(セキュリティ基盤技術)
- 脆弱性の動的検知機能との連携を考慮した構造化例外処理の設計
- スレッド別ごみ集めにおけるライトバリアの高速化
- Java2Cトランスレータにおける可搬性のオーバヘッド
- 組込み機器向けJava2Cトランスレータにおける2返戻値法を使った例外処理の実現
- Java2Cトランスレータにおける例外処理の実現
- Java向け静的コンパイラによる仮想メソッド呼び出しの高速化
- Javaにおける静的コンパイル済みコードのリンク方法
- Java向け静的コンパイラによるクラス間最適化
- Java向けごみ集めの基本処理の高速化