WEKO3
アイテム
再現コンパイル手法を用いたJava JIT コンパイラの問題判別
https://ipsj.ixsq.nii.ac.jp/records/16594
https://ipsj.ixsq.nii.ac.jp/records/1659493a2c708-08c2-46fb-a426-e47575ffeeeb
名前 / ファイル | ライセンス | アクション |
---|---|---|
![]() |
Copyright (c) 2005 by the Information Processing Society of Japan
|
|
オープンアクセス |
Item type | Trans(1) | |||||||
---|---|---|---|---|---|---|---|---|
公開日 | 2005-10-15 | |||||||
タイトル | ||||||||
タイトル | 再現コンパイル手法を用いたJava JIT コンパイラの問題判別 | |||||||
タイトル | ||||||||
言語 | en | |||||||
タイトル | Problem Determination for a Java JIT Compiler Using Replay Compilation | |||||||
言語 | ||||||||
言語 | jpn | |||||||
キーワード | ||||||||
主題Scheme | Other | |||||||
主題 | 通常論文 | |||||||
資源タイプ | ||||||||
資源タイプ識別子 | http://purl.org/coar/resource_type/c_6501 | |||||||
資源タイプ | journal article | |||||||
著者所属 | ||||||||
日本アイ・ビー・エム(株)東京基礎研究所 | ||||||||
著者所属 | ||||||||
日本アイ・ビー・エム(株)東京基礎研究所 | ||||||||
著者所属 | ||||||||
日本アイ・ビー・エム(株)東京基礎研究所 | ||||||||
著者所属 | ||||||||
日本アイ・ビー・エム(株)東京基礎研究所 | ||||||||
著者所属 | ||||||||
日本アイ・ビー・エム(株)東京基礎研究所 | ||||||||
著者所属(英) | ||||||||
en | ||||||||
Tokyo Research Laboratory IBM Japan, Ltd. | ||||||||
著者所属(英) | ||||||||
en | ||||||||
Tokyo Research Laboratory IBM Japan, Ltd. | ||||||||
著者所属(英) | ||||||||
en | ||||||||
Tokyo Research Laboratory IBM Japan, Ltd. | ||||||||
著者所属(英) | ||||||||
en | ||||||||
Tokyo Research Laboratory IBM Japan, Ltd. | ||||||||
著者所属(英) | ||||||||
en | ||||||||
Tokyo Research Laboratory IBM Japan, Ltd. | ||||||||
著者名 |
緒方, 一則
小野寺, 民也
河内谷清久仁
小松, 秀昭
中谷, 登志男
× 緒方, 一則 小野寺, 民也 河内谷清久仁 小松, 秀昭 中谷, 登志男
|
|||||||
著者名(英) |
Kazunori, Ogata
Tamiya, Onodera
Kiyokuni, Kawachiya
Hideaki, Komatsu
Toshio, Nakatani
× Kazunori, Ogata Tamiya, Onodera Kiyokuni, Kawachiya Hideaki, Komatsu Toshio, Nakatani
|
|||||||
論文抄録 | ||||||||
内容記述タイプ | Other | |||||||
内容記述 | Java JIT コンパイラは,実行時情報を利用した高度な適応型最適化を行い,Java プログラムをより高速に実行する.反面,適応型最適化は,適用する最適化の組合せの増加と,最適化動作が入力データやスレッド実行順序などに依存することで動作の再現性を低下させ,JIT コンパイラの問題判別作業を困難にしている.この問題は,入力データ量や実行スレッド数の多い基幹システムで顕著になる.JIT コンパイラの問題判別には,通常,デバッグ用トレースを用いるが,基幹システムなどで,本番運用中に常時トレースを生成するのは非現実的である.そのため,デバッグ用トレースを取得するには,同一アプリケーションを別のマシンで再コンパイルする必要があるが,適応型最適化の動作は入力データやスレッド実行順序などに依存するので,再コンパイルしても同一のデバッグ用トレースが得られない.本論文では,再コンパイルでも本番運用中と同じ結果を再現する,再現コンパイル手法を提案する.本手法は,記録コンパイラと再現コンパイラと呼ばれる2 種類のコンパイラを使用する.記録コンパイラは本番運用中に使用され,レポジトリと呼ばれるメモリ領域とシステムダンプを用いて,コンパイラへの入力をすべて保存する.我々の実験では,入力を保存することによる速度低下は無視できる程度,レポジトリに必要なメモリ量はコンパイラ生成コードの10%以下であった. | |||||||
論文抄録(英) | ||||||||
内容記述タイプ | Other | |||||||
内容記述 | The JIT compiler for Java has been greatly improved by supporting more advanced optimizations that are based on the adaptive optimization technique. On the other hand, the adaptive optimization increases variety of combinations of optimizations to be applied to a method and decreases the possibility to reproduce the same compilation process again because it depends on the input of the Java program and the execution order of threads. Thus, it makes the JIT compiler difficult to debug particularly in the mission-critical environment, where it usually processes large amount of input with many threads. The typical approach to debug the JIT compiler is to generate the trace of the compilation process, but it is impractical in the mission-critical environment. The only way to get the trace is to run the same Java application again remotely, but this does not necessarily generate the same output because the adaptive optimizations depend on the runtime environment that can be different from that at the time of the failure when it is compiled again remotely. In this paper, we propose a new technique, called replay JIT compilation, to recreate the same JIT compilation process offline remotely using two compilers, the state-saving compiler and the replaying compiler. The state-saving compiler is designed to run in the customer environment as part of the Java runtime and save into the repository in the memory all the state information necessary for the replaying compiler to reproduce the same compilation process later offline. Our experiment has shown that the overhead of state saving is negligible, and the size of the additional memory area for state saving is only 10% of the compiled code. | |||||||
書誌レコードID | ||||||||
収録物識別子タイプ | NCID | |||||||
収録物識別子 | AA11464814 | |||||||
書誌情報 |
情報処理学会論文誌プログラミング(PRO) 巻 46, 号 SIG14(PRO27), p. 1-11, 発行日 2005-10-15 |
|||||||
ISSN | ||||||||
収録物識別子タイプ | ISSN | |||||||
収録物識別子 | 1882-7802 | |||||||
出版者 | ||||||||
言語 | ja | |||||||
出版者 | 情報処理学会 |