netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2006-11-05 [長年日記] ▲
_ [Java] Extensible Java Profiler を試してみた ▲
JDK 1.4 で動くプロファイラがほしくてExtensible Java Profilerを試してみた. 別に何でも良かったのだけど,@ITの記事 で紹介されていたプロファイラの中で,最新版が一番新しかったから選んでみた.(1.5用ならこんなのとかがある)
lib/tracer.dll にパスを通して -Xruntracer で実行すると,スレッドごととおぼしき *.ejp ファイルが生成されるので,それを presenter.bat で起動するツールに読ませる.出力結果はメソッド呼び出しの履歴(コールツリー)に時間情報が付加されているだけのシンプルなUIなので,使う段階で迷うことは特になし.
Extensible というのは,どうやら色々なフィルタを噛ませて閲覧できるという点らしい.メソッドごとに時間積算するぐらいで十分だけど…….
このツールは,どうもログファイルの肥大化が目立つ気がする.積極的にライブラリなどを排除しておかないと,すぐ数百MB,下手するとGB単位のファイルになってしまう.「後からプロファイル結果を加工する」という考え方をしてるので,JVM からデータを取っている段階でデータ量を減らせないというのが不利に働いている気がする.適用対象のプログラムがやたらと多数のオブジェクトを使ってたせいかもしれないけれど.
大規模な入力に対しては,このツールだと太刀打ちできなかったので, System.getCurrentMillis あたりを使っての簡易時間計測で済ませることにした.