Tomcat でプロファイリングするなら JIP が簡単

Java の Web アプリケーションをプロファイリングするのに
JIP (The Java Interactive Profiler) が簡単だったのでその使い方をメモ。

環境

インストール

http://jiprof.sourceforge.net/ から jip-1.2.zip をダウンロードして
適当なパスに解凍する。パスに空白が含まれない方がベター。

今回は C:\usr\jip-1.2 に解凍した。

使い方

コマンドプロンプトを開き、以下のコマンドで Tomcat を起動する。
webapp.profile.properties を指定するのがミソ。

cd C:\Program Files\apache-tomcat-7.0.22\bin
set JAVA_OPTS=-javaagent:/usr/jip-1.2/profile/profile.jar -Dprofile.properties=/usr/jip-1.2/profile/webapp.profile.properties
startup.bat

この時点ではまだ JIP は有効になっていない。

次にコマンドプロンプトから、以下のコマンドで JIP を有効にする。

cd C:\usr\jip-1.2\client
start.bat localhost 15599

Tomcatコマンドプロンプトに start と表示されれば成功。

ここでプロファイリングをしたい処理を実行する。

次にコマンドプロンプトから、以下のコマンドで JIP を終了する。

cd C:\usr\jip-1.2\client
finish.bat localhost 15599

Tomcatコマンドプロンプトに finish と表示されれば成功。

C:\Program Files\apache-tomcat-7.0.22\bin\profile.xml
に結果が保存される。

結果を確認するためには、以下のコマンドで GUI が立ち上がる。

cd C:\usr\jip-1.2\client
jipViewer.bat "C:\Program Files\apache-tomcat-7.0.22\bin\profile.xml"

methods タブを開いて、%net でソートする方法といい感じ。

2017-08-10 追記

Java 8 の場合は VerifyError でうまく動作しないので JAVA_OPTS に -Xverify:none を追加すると良い。

set JAVA_OPTS=-javaagent:/usr/jip-1.2/profile/profile.jar -Dprofile.properties=/usr/jip-1.2/profile/webapp.profile.properties -Xverify:none