Presentation is loading. Please wait.

Presentation is loading. Please wait.

Java Virtual Machine 高速化のためのbyte code 解析 An analysis of byte code to improve the performance of Java Virtual Machine 5401812 鈴木タカハル 谷研究室 Feb, 2003.

Similar presentations


Presentation on theme: "Java Virtual Machine 高速化のためのbyte code 解析 An analysis of byte code to improve the performance of Java Virtual Machine 5401812 鈴木タカハル 谷研究室 Feb, 2003."— Presentation transcript:

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解析


Download ppt "Java Virtual Machine 高速化のためのbyte code 解析 An analysis of byte code to improve the performance of Java Virtual Machine 5401812 鈴木タカハル 谷研究室 Feb, 2003."

Similar presentations


Ads by Google