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

Slides:



Advertisements
Similar presentations
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也. 講義計画(あくまで予定) 第 1 回 プログラミング言語の種類と歴史 第 2 回 eclipse の基本操作 第 3 回 eclipse のデバッグ機能 第 4 回 構造化プログラミングの復習 第 5 回 演習 第 6 回 構造化指向からオブジェクト指向へ.
Advertisements

日本語 WWW 情報を用いた COCET3300 英単語学習支援に関する研究 情報・知能工学専攻 博士前期課程2年 渡邉 雄大 指導教員 河合 和久.
AdventNet SwisSQL データベース自動移行ツール.
シーケンス図の生成のための実行履歴圧縮手法
クラスタの構成技術と クラスタによる並列処理
ファイルキャッシュを考慮したディスク監視のオフロード
コンピュータプラクティス I 再現性 水野嘉明
最新ファイルの提供を保証する代理FTPサーバの開発
オペレーティングシステムⅡ 第11回 講師 松本 章代 VirtuaWin・・・仮想デスクトップソフト.
Java I 第2回 (4/18)
分散コンピューティング環境上の Webリンク収集システムの実装
侵入検知システムの構築と ログの可読性向上
アプレット (Applet)について.
Explorations in Symbiosis on two Multithreaded Architectures
ファイルシステムキャッシュを 考慮した仮想マシン監視機構
第一回 Java言語 04A2029           古賀慎也.
日本大学 文理学部 情報システム解析学科 谷研究室 益田真太郎
  【事例演習6】  数式インタプリタ      解 説     “インタプリタの基本的な仕組み”.
心理学情報処理法Ⅰ コンピュータ言語の歴史.
ユーザ毎にカスタマイズ可能な Web アプリケーション用のフレームワークの実装
分散処理を用いた大規模ソフトウェアに対するコーディングパターン検出ツール
Java ソフトウェア部品検索システム SPARS-J のための リポジトリ自動更新機能の実現
部分的再ロードによる Java プログラムの再起動の高速化手法
型付きアセンブリ言語を用いた安全なカーネル拡張
プログラミング言語入門 手続き型言語としてのJava
AMD64の仮想化技術を利用した 仮想マシンモニタの実装
コードクローンに含まれるメソッド呼び出しの 変更度合の分析
コードクローンに含まれるメソッド呼び出しの 変更度合の調査
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
2009年度卒業論文発表 CDNコンテンツサーバの動的負荷分散
プログラミング言語入門.
Integer Java Virtual Machine
Java Bytecode Modification and Applet Security
ユーザ毎にカスタマイズ可能な Webアプリケーションの 効率の良い実装方法
重複コードと非重複コードにおける 修正頻度の比較
WWW上の効率的な ハブ探索法の提案と実装
クラスファイルの構造解析(2) 2003年6月23日 海谷 治彦.
Javaを対象としたソフトウェア部品 検索システムSPARS-Jの実験的評価
通信機構合わせた最適化をおこなう並列化ンパイラ
動的データ依存関係解析を用いた Javaプログラムスライス手法
Javaバイトコードの 動的依存解析情報を用いた スライシングシステムの実現
連続領域におけるファジィ制約充足問題の 反復改善アルゴリズムによる解法 Solving by heuristic repair Algorithm of the Fuzzy Constraint Satisfaction Problems with Continuous Domains 北海道大学.
Webコミュニティ概念を用いた Webマイニングについての研究 A study on Web Mining Based on Web Communities 清水 洋志.
第二回 Javaの開発環境 04A2029           古賀慎也.
Javaソフトウェア部品検索システムSPARS-Jの実験的評価
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
適応的近傍を持つ シミュレーテッドアニーリングの性能
ソフトウェア保守のための コードクローン情報検索ツール
ウェブアプリケーションサーバの Degradation Schemeの 制御に向けて
Javaバーチャルマシンを利用した 動的依存関係解析手法の提案
Peer-to-Peerシステムにおける動的な木構造の生成による検索の高速化
オブジェクトの協調動作を用いた オブジェクト指向プログラム実行履歴分割手法
秘匿リストマッチングプロトコルとその応用
設計情報の再利用を目的とした UML図の自動推薦ツール
仮想マシンに対する 高いサービス可用性を実現する パケットフィルタリング
オープンソースソフトウェアに対する コーディングパターン分析の適用
メソッドの同時更新履歴を用いたクラスの機能別分類法
分散処理を用いたコーディングパターン検出ツールの実装
理工学部情報学科 情報論理工学研究室 延山 周平
第2回 開発環境とゲーム 05A1030 佐々木 和也.
Webページタイプによるクラスタ リングを用いた検索支援システム
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
回帰テストにおける実行系列の差分の効率的な検出手法
アーキテクチャパラメータを利用した並列GCの性能予測
全体ミーティング (9/12) 村田 雅之.
識別子の読解を目的とした名詞辞書の作成方法の一試案
ベイジアンネットワークと クラスタリング手法を用いたWeb障害検知システムの開発
1.2 言語処理の諸観点 (1)言語処理の利用分野
Presentation transcript:

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

JVM高速化のためのbytecode解析 目次 研究の目的、概要 調査概要 調査方法 結果 考察 今後の課題 JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 特定の実装を指さない仮想マシン JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 研究の目的、概要 動機付け Write Once, Run Anywhere ™ JVMはインタプリタ 実行速度が遅い 高速化したい JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 研究の目的、概要 研究の目的 JVM の高速化 高速化を実現させる為に、 bytecode の解析 この結果から、効果的な高速化の可能性を提示 JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 研究の目的、概要 調査の概要 bytecode の頻度を取る 連続する bytecode の頻度を取る JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 調査概要 どうしたら速くなるのか プログラム:ABCA A A B B C C C A A 元データ Bを高速化 Aを高速化 JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 調査概要 命令Aを見つける為に bytecode に含まれる命令の頻度を取る 頻度の低いものより最適 頻度の高いものを高速化する 高速化: 命令をアセンブラで書く CPUのキャッシュ率を上げる JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 調査概要 命令ごとの実行速度の偏り A B A B C C C A A JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 調査概要 連続する命令に対して プログラム:A D B E C F A D AD AD BE B E C F CF CF AD AD JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 調査概要 連続する命令に対して どのプログラムでも出現する頻度の高い命令の組み合わせを探す JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 調査方法 出現頻度に関する調査 bytecode に含まれる命令の頻度を取る 80%、90%被覆を取る 何個の命令で、プログラムの80%, 90% をカバー出来るか JVM高速化のためのbytecode解析

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

JVM高速化のためのbytecode解析 調査方法 MIPSとの比較調査 連続性に関して、bytecode と MIPS とで差異を取る ls httpd kaffe JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 調査方法 調査対象 対象: JDK 1.4.1 パッケージ lang, io, net, util, awt JDKに含まれる全ての class file eclipse 2.0.2 :開発環境 Jetty 4.2.3 :WEBサーバ OpenOffice 1.0.2 :Word, Excel, ppt yFiles2.0.1 :クラスライブラリ robocode 1.0.6 :ロボコード JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 調査方法 システム class file から bytecode を抜き出す bytecode から 出現頻度を得る bytecode の連続性を取る bytecode を視覚化する class file から constant pool を抜き出す データを統合し、統計を取る 以上の操作を自動で行う JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 出現頻度の結果 : JDK 1.4.1 JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 考察 出現頻度に関する考察 パッケージ、アプリケーションの差異にかかわらず、上位の命令は同一 JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 80%、90%被覆の結果 JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 考察 80%被覆に対する考察 パッケージやアプリケーションによって差異がある JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 結果 連続性の結果:2連続 JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 結果 JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 考察 2連続する命令の考察 パッケージ、アプリケーションの差異にかかわらずほぼ同一 JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 結果 連続性の結果:5連続 JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 考察 5連続に対する考察 パッケージ、アプリケーションによって同一のものが上位に来るとは限らない JDKと OpenOffice は、ほぼ同一 JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 結果 連続性の被覆率:2連続 JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 結果 連続性の被覆率:5連続 JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 結果 連続性の被覆率:10連続 JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 考察 連続性に対する考察 命令の連続数が増えるのに比例して、被覆率は低くなる OpenOffice が高い被覆率 JDKもやや高い JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 結果 連続性の被覆率:MIPS 2連続 JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 結果 連続性の被覆率:MIPS 5連続 JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 結果 連続性の被覆率:MIPS 10連続 JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 考察 MIPSとの比較に対する考察 MIPSはjavaに比べ、均等に命令が出てくる傾向 Java の命令の連続性はユニークと言えるのではないか JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 再現性の結果 結果 aload_0 ...c2...c3...c4...c5...c6...c7...c8...c9...c10 JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 結果 再現性の結果 JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 結果 再現性の結果 JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 考察 再現性の考察 sastoreで始まる命令の列は、JDK, OpenOffice において顕著な再現性 java.net は、若干再現性が高い 被覆率が低かったことと関係しているのか? JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 考察 まとめ 出現する命令の頻度はほぼ同一 連続性に関しては、差異が見られる 被覆率や再現性は差異が見られる JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 今後の課題 今後の課題 より詳しい検証 命令の連続性の調査をもっと行う 200連続する命令があるclass fileの検証 JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 今後の課題 今後の課題 動的処理 動的統計が取れると、より詳しい情報が読める JVM高速化のためのbytecode解析

JVM高速化のためのbytecode解析 今後の課題 今後の課題 実際に実装し、検証をする 何パーセントのパフォーマンス向上が見られるか JVM高速化のためのbytecode解析