WEKO3
アイテム
Java におけるコード配置の動的最適化
https://ipsj.ixsq.nii.ac.jp/records/16569
https://ipsj.ixsq.nii.ac.jp/records/16569a9de0ac4-7e18-48ca-b7e4-b0cbbc5c46f2
| 名前 / ファイル | ライセンス | アクション |
|---|---|---|
|
|
Copyright (c) 2006 by the Information Processing Society of Japan
|
|
| オープンアクセス | ||
| Item type | Trans(1) | |||||||
|---|---|---|---|---|---|---|---|---|
| 公開日 | 2006-05-15 | |||||||
| タイトル | ||||||||
| タイトル | Java におけるコード配置の動的最適化 | |||||||
| タイトル | ||||||||
| 言語 | en | |||||||
| タイトル | Dynamic Optimization for Code Positioning for Java | |||||||
| 言語 | ||||||||
| 言語 | jpn | |||||||
| キーワード | ||||||||
| 主題Scheme | Other | |||||||
| 主題 | 発表概要 | |||||||
| 資源タイプ | ||||||||
| 資源タイプ識別子 | http://purl.org/coar/resource_type/c_6501 | |||||||
| 資源タイプ | journal article | |||||||
| 著者所属 | ||||||||
| 日本電信電話株式会社,ネットワークサービスシステム研究所 | ||||||||
| 著者所属 | ||||||||
| NTT ソフトウェア株式会社 | ||||||||
| 著者所属 | ||||||||
| 日本電信電話株式会社,ネットワークサービスシステム研究所 | ||||||||
| 著者所属(英) | ||||||||
| en | ||||||||
| Network Service System Laboratory, NTT | ||||||||
| 著者所属(英) | ||||||||
| en | ||||||||
| NTT Software | ||||||||
| 著者所属(英) | ||||||||
| en | ||||||||
| Network Service System Laboratory, NTT | ||||||||
| 著者名 |
田中, 慎司
山田, 哲靖
八尾, 宏
× 田中, 慎司 山田, 哲靖 八尾, 宏
|
|||||||
| 著者名(英) |
Shinji, Tanaka
Tetsuyasu, Yamada
Hiroshi, Yao
× Shinji, Tanaka Tetsuyasu, Yamada Hiroshi, Yao
|
|||||||
| 論文抄録 | ||||||||
| 内容記述タイプ | Other | |||||||
| 内容記述 | 現在,Web アプリケーションなどの分野におけるJava 言語の採用が進んでいる.Java 言語の利点は,主にアプリケーションの移植性と生産性にあるが,Java 言語の処理系であるJavaVM の問題として,性能があげられることが多く,重要な課題となっている.JavaVM は,プログラムの実行中にバイトコードからネイティブコードに動的にコンパイルが実行されるなど,動的な最適化の適用が容易となっている.動的な最適化では,ソースコードなどの静的な情報だけではなく,実行時に取得するプロファイルによって,さらなる最適化が可能である.本発表では,JavaVM の高速化のために,動的コンパイル時に実行頻度の低いコードを他のコードと分離することで,実際のアプリケーション性能に大きく影響するキャッシュ利用効率を向上させる手法を提案する.本手法では,実行頻度の低いコードを発見するために,各メソッドのBasic Block ごとの実行回数,およびメソッド呼出しの呼出し元と呼出し先を記録する.それぞれを,一定時間取得し,Basic Block の実行回数,およびメソッドの呼出し回数によって,それぞれの最適な配置と分割方針を判断する.その後,メソッドの再コンパイルにより,再配置を実行することで最適配置を実現する.本手法のプロトタイプ実装による評価結果より,J2EE のベンチマークで14.3%,SPEC jbb2000 で2.2%の性能改善効果を得た. | |||||||
| 論文抄録(英) | ||||||||
| 内容記述タイプ | Other | |||||||
| 内容記述 | Recently, Java language is spreading over web application servers and other servers. Advantage of Java language are mainly portability and productivity of applications. But performance of JavaVM, which is execution environment of Java language, is often focused as problem. It is easy to apply dynamic optimization to JavaVM, such as dynamic compilation of binary codes to native codes. Dynamic optimization can use static information like source codes and dynamic information like online profiles. In this presentation, we propose a method to divide frequently executed codes from infrequently executed codes. The method can improve cache hit rates, which directly affects system performance. With this method, JavaVM counts the number of executions of basic blocks of all methods and the caller and the callee of all method calls. After the profiling period, JavaVM determines positions of basic blocks and methods based on the profiles. And finally JavaVM recompile every methods for re-positioning them. From the result of the evaluation of the prototype implementation, this method can improve the performance of an benchmark of J2EE by 14.3%, and the performance of SPEC jbb2000 by 2.2%. | |||||||
| 書誌レコードID | ||||||||
| 収録物識別子タイプ | NCID | |||||||
| 収録物識別子 | AA11464814 | |||||||
| 書誌情報 |
情報処理学会論文誌プログラミング(PRO) 巻 47, 号 SIG6(PRO29), p. 71-71, 発行日 2006-05-15 |
|||||||
| ISSN | ||||||||
| 収録物識別子タイプ | ISSN | |||||||
| 収録物識別子 | 1882-7802 | |||||||
| 出版者 | ||||||||
| 言語 | ja | |||||||
| 出版者 | 情報処理学会 | |||||||