[技術][eclipse] プロファイラでシーケンス図も自動生成
まずはデメリット。ぬかよろこびしないために...
- さすが自動生成。細かい。細かすぎる。お客さんには出せないレベル。
- データをsaveするのにものすごく時間がかかる。悪くするとEclipseが固まる。← 私だけかな。
本文
Hyadesというアプリケーション+Eclipseプラグインを使ってシーケンス図を
自動生成することができた。もうほんとに大助かり。
規模が大きいシステムのソース解析とか。
いえ、本当はソースを読むだけで分かったら一番よいということはじゅうじゅう承知しているのですが。
タダのプロファイラでシーケンス図の自動生成までできるなんて...
感涙。
実際のインストール・稼働確認は
『Eclipse パーフェクトマニュアルVol.4』(技術評論社)の
特集『Hyadesではじまるアプリケーションプロファイリング』をみて行いました。
Hyadesは「ヒアデス」とよむらしいです。星関連の言葉だそうです。
そういえば星には「プレイアデス」ってのもあるし「〜デス」ってのは、
星世界ではやってるというか、よくあることですか。
![Eclipseパーフェクトマニュアル Vol.4 Eclipseパーフェクトマニュアル Vol.4](https://images-fe.ssl-images-amazon.com/images/I/51inl8Q3mBL._SL160_.jpg)
- 作者: JAVA PRESS編集部
- 出版社/メーカー: 技術評論社
- 発売日: 2004/08/07
- メディア: 単行本
- 購入: 2人 クリック: 37回
- この商品を含むブログ (7件) を見る
環境
以下が稼働確認とれた環境です。
OS: Windows2000
IDE: Eclipse3.0.1
Eclipse起動JRE: 1.4.2
Eclipse前提: EMFプラグインが入っていること、XSDプラグインが入っていること
前準備
Hyadesを動作させるために以下のEclipseプラグインをインストール
(1)EMF (Eclipse Modeling Framework)
emf-sdo-runtime-2.0.1.zip
↓からダウンロードした
http://download.eclipse.org/tools/emf/scripts/downloads-viewer.php?s=2.0.1/R200409171617
(2) XSD (XML Schema Infoset Model)
xsd-runtime-I200501121156.zip
↓からダウンロードした
http://download.eclipse.org/tools/emf/scripts/downloads-viewer.php?s=2.1.0/I200501121156
Hyadesプロファイラの用意
http://www.eclipse.org/hyades/から↓ふたつをダウンロード
(1) Hyades Runtime ・・・Eclipseのプラグイン
hyades.runtime_3.0.0_20040621_1225.zip
(2)Hyades Data Collection Engine for Windows (NT, 2000, XP) Runtime ・・・ プロファイラそのもの
hyades.rac.nt_3.0.0_20040621_1225.zip
注意点など
- プロファイリングセットは"Execution History"を選べばよい。
今回は「実行時フロープロファイル」と「シーケンス図自動生成」を行いたいだけなので。
- デフォルトの設定を変える必要あり
「実行時フロープロファイル」と「シーケンス図自動生成」を行いたい場合、デフォルトの設定では無理。ちょっと設定を変えてやらないといけない。
ExecutionHistory > Edit > TimeAnalysis > Execution Time Analysis
デフォルト
変更後 ・・・ これで実行時フローのプロファイル・シーケンス図自動生成ができる
ちなみに、デフォルトの設定でプロファイル実行した場合、以下のようなメッセージがでる。
No data is available for display.
The object selected in the Profiling Monitor view does not contain this type of information.Note:
Populate the view by selecting a valid item in the Profiling Monitor view, or start monitoring a Java process.
Use Profile action from Profiling perspective to launch or attach to a java process.
[技術] プロファイラ動作原理、ご存知の方
こんなにいろいろやってくれるプロファイラだが、どうやって実現されているのか興味がある。
プロファイラの動作原理とはどのようなもの?
↓のような3層構造で測定対象アプリケーションを実行することで
アプリケーションからJVMに出される命令((というのでしょうか?例えば
「インスタンスを生成しろ」とかこのインスタンスのこのメソッドを呼べとか))を
プロファイラが追跡している、というのが動作原理なのか?
(上位層)
・測定対象アプリケーション
・プロファイラ
・JVM
(下位層)
それからデバッガの動作原理も↑のようになっている?
デバッガもプロファイラもいずれも動的にアプリケーションの
実行パスを追跡できるものだと思っていますが...
ご存知の方がいらっしゃれば、どんな本を読めばよいか、どのWebページを見ればよいか
教えていただけると嬉しいです。あと、もし上記の認識に誤解があれば
ご指摘も大歓迎です。