Download presentation
Presentation is loading. Please wait.
Published byMargrethe Lise Justesen Modified 約 5 年前
1
Java Virtual Machine 高速化のためのbyte code 解析 An analysis of byte code to improve the performance of Java Virtual Machine 鈴木タカハル 谷研究室 Feb, 2003
2
JVM高速化のためのbytecode解析
目次 研究の目的、概要 調査概要 調査方法 結果 考察 今後の課題 JVM高速化のためのbytecode解析
3
JVM高速化のためのbytecode解析
特定の実装を指さない仮想マシン JVM高速化のためのbytecode解析
4
JVM高速化のためのbytecode解析
研究の目的、概要 動機付け Write Once, Run Anywhere ™ JVMはインタプリタ 実行速度が遅い 高速化したい JVM高速化のためのbytecode解析
5
JVM高速化のためのbytecode解析
研究の目的、概要 研究の目的 JVM の高速化 高速化を実現させる為に、 bytecode の解析 この結果から、効果的な高速化の可能性を提示 JVM高速化のためのbytecode解析
6
JVM高速化のためのbytecode解析
研究の目的、概要 調査の概要 bytecode の頻度を取る 連続する bytecode の頻度を取る JVM高速化のためのbytecode解析
7
JVM高速化のためのbytecode解析
調査概要 どうしたら速くなるのか プログラム:ABCA A A B B C C C A A 元データ Bを高速化 Aを高速化 JVM高速化のためのbytecode解析
8
JVM高速化のためのbytecode解析
調査概要 命令Aを見つける為に bytecode に含まれる命令の頻度を取る 頻度の低いものより最適 頻度の高いものを高速化する 高速化: 命令をアセンブラで書く CPUのキャッシュ率を上げる JVM高速化のためのbytecode解析
9
JVM高速化のためのbytecode解析
調査概要 命令ごとの実行速度の偏り A B A B C C C A A JVM高速化のためのbytecode解析
10
JVM高速化のためのbytecode解析
調査概要 連続する命令に対して プログラム:A D B E C F A D AD AD BE B E C F CF CF AD AD JVM高速化のためのbytecode解析
11
JVM高速化のためのbytecode解析
調査概要 連続する命令に対して どのプログラムでも出現する頻度の高い命令の組み合わせを探す JVM高速化のためのbytecode解析
12
JVM高速化のためのbytecode解析
調査方法 出現頻度に関する調査 bytecode に含まれる命令の頻度を取る 80%、90%被覆を取る 何個の命令で、プログラムの80%, 90% をカバー出来るか JVM高速化のためのbytecode解析
13
JVM高速化のためのbytecode解析
調査方法 連続性に関する調査 連続する命令の頻度を取る 2連続、5連続 10連続で頻出した命令を、再現出来るか実験 命令の予測など 命令 : A B C D E F G H I J A B C D E F G H I J JVM高速化のためのbytecode解析
14
JVM高速化のためのbytecode解析
調査方法 MIPSとの比較調査 連続性に関して、bytecode と MIPS とで差異を取る ls httpd kaffe JVM高速化のためのbytecode解析
15
JVM高速化のためのbytecode解析
調査方法 調査対象 対象: JDK パッケージ lang, io, net, util, awt JDKに含まれる全ての class file eclipse :開発環境 Jetty :WEBサーバ OpenOffice :Word, Excel, ppt yFiles :クラスライブラリ robocode :ロボコード JVM高速化のためのbytecode解析
16
JVM高速化のためのbytecode解析
調査方法 システム class file から bytecode を抜き出す bytecode から 出現頻度を得る bytecode の連続性を取る bytecode を視覚化する class file から constant pool を抜き出す データを統合し、統計を取る 以上の操作を自動で行う JVM高速化のためのbytecode解析
17
JVM高速化のためのbytecode解析
出現頻度の結果 : JDK 1.4.1 JVM高速化のためのbytecode解析
18
JVM高速化のためのbytecode解析
19
JVM高速化のためのbytecode解析
20
JVM高速化のためのbytecode解析
考察 出現頻度に関する考察 パッケージ、アプリケーションの差異にかかわらず、上位の命令は同一 JVM高速化のためのbytecode解析
21
JVM高速化のためのbytecode解析
80%、90%被覆の結果 JVM高速化のためのbytecode解析
22
JVM高速化のためのbytecode解析
考察 80%被覆に対する考察 パッケージやアプリケーションによって差異がある JVM高速化のためのbytecode解析
23
JVM高速化のためのbytecode解析
結果 連続性の結果:2連続 JVM高速化のためのbytecode解析
24
JVM高速化のためのbytecode解析
結果 JVM高速化のためのbytecode解析
25
JVM高速化のためのbytecode解析
26
JVM高速化のためのbytecode解析
考察 2連続する命令の考察 パッケージ、アプリケーションの差異にかかわらずほぼ同一 JVM高速化のためのbytecode解析
27
JVM高速化のためのbytecode解析
結果 連続性の結果:5連続 JVM高速化のためのbytecode解析
28
JVM高速化のためのbytecode解析
29
JVM高速化のためのbytecode解析
30
JVM高速化のためのbytecode解析
考察 5連続に対する考察 パッケージ、アプリケーションによって同一のものが上位に来るとは限らない JDKと OpenOffice は、ほぼ同一 JVM高速化のためのbytecode解析
31
JVM高速化のためのbytecode解析
結果 連続性の被覆率:2連続 JVM高速化のためのbytecode解析
32
JVM高速化のためのbytecode解析
結果 連続性の被覆率:5連続 JVM高速化のためのbytecode解析
33
JVM高速化のためのbytecode解析
結果 連続性の被覆率:10連続 JVM高速化のためのbytecode解析
34
JVM高速化のためのbytecode解析
考察 連続性に対する考察 命令の連続数が増えるのに比例して、被覆率は低くなる OpenOffice が高い被覆率 JDKもやや高い JVM高速化のためのbytecode解析
35
JVM高速化のためのbytecode解析
結果 連続性の被覆率:MIPS 2連続 JVM高速化のためのbytecode解析
36
JVM高速化のためのbytecode解析
結果 連続性の被覆率:MIPS 5連続 JVM高速化のためのbytecode解析
37
JVM高速化のためのbytecode解析
結果 連続性の被覆率:MIPS 10連続 JVM高速化のためのbytecode解析
38
JVM高速化のためのbytecode解析
考察 MIPSとの比較に対する考察 MIPSはjavaに比べ、均等に命令が出てくる傾向 Java の命令の連続性はユニークと言えるのではないか JVM高速化のためのbytecode解析
39
JVM高速化のためのbytecode解析
再現性の結果 結果 aload_0 ...c2...c3...c4...c5...c6...c7...c8...c9...c10 JVM高速化のためのbytecode解析
40
JVM高速化のためのbytecode解析
結果 再現性の結果 JVM高速化のためのbytecode解析
41
JVM高速化のためのbytecode解析
結果 再現性の結果 JVM高速化のためのbytecode解析
42
JVM高速化のためのbytecode解析
考察 再現性の考察 sastoreで始まる命令の列は、JDK, OpenOffice において顕著な再現性 java.net は、若干再現性が高い 被覆率が低かったことと関係しているのか? JVM高速化のためのbytecode解析
43
JVM高速化のためのbytecode解析
考察 まとめ 出現する命令の頻度はほぼ同一 連続性に関しては、差異が見られる 被覆率や再現性は差異が見られる JVM高速化のためのbytecode解析
44
JVM高速化のためのbytecode解析
今後の課題 今後の課題 より詳しい検証 命令の連続性の調査をもっと行う 200連続する命令があるclass fileの検証 JVM高速化のためのbytecode解析
45
JVM高速化のためのbytecode解析
今後の課題 今後の課題 動的処理 動的統計が取れると、より詳しい情報が読める JVM高速化のためのbytecode解析
46
JVM高速化のためのbytecode解析
今後の課題 今後の課題 実際に実装し、検証をする 何パーセントのパフォーマンス向上が見られるか JVM高速化のためのbytecode解析
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.