Apache* Tomcat* からの Java* アプレットをプロファイルするためインテル® VTune™ Amplifier XE を利用する

同カテゴリーの次の記事

並列プログラムのテスト

この記事は、インテル® デベロッパー・ゾーンに掲載されている「Using VTune™ Amplifier XE to profile Java applet from Apache-tomcat」の日本語参考訳です。


この記事は、Tomcat* 環境で開発した Java* アプレットのパフォーマンス・データをインテル® VTune™ Amplifier XE で収集する方法を紹介します。

最初に、JDK をインストールします。ここでは、Java* バージョン 1.7.0_11 を使用しています。JDK をインストールしたら、次のコマンドで環境変数を設定します。
$ export JRE_HOME=/home/peter/jdk1.7.0_11/

次に、apache-tomcat-7.0.40 をダウンロードして、任意のフォルダーに展開します。通常、Tomcat は次の 2 つの sh ファイルを使って動作するため、特別な設定は必要ありません。
$ Apach-tomcat-7.0.4/bin/startup.sh
$ Apach-tomcat-7.0.4/bin/shutdown.sh

“ps axuwf | grep java” コマンドで Java* サービスプロセス (Tomcat) が動作しているかどうかを確認できます。
また、“ps axuwf | grep java” コマンドを使用して、TCP サービスが 8080 ポートで動作しているかどうかを確認 (リスニング) することもできます。次に例を示します。
tcp        0      0 :::8080                     :::*                        LISTEN      12753/java   

Tomcat が正常に起動しているのを確認したら、ブラウザーで http://localhost:8080 にアクセスします。ウェルカムページが表示されれば、Tomcat HTTP アプレットサービスは動作しています。

次に、Java* HTTP サーブレット・アプリケーションをコンパイルする前に、Tomcat から JDK ライブラリーのディレクトリーへ servlet-api.jar をコピーします。次に例を示します。
$ cp apache-tomcat-7.0.40/jre/lib/servlet-api.jar /home/peter/jdk1.7.0_11/jre/lib/ext  

そして、Java* アプリケーションをコンパイルしてクラスを生成します。次に例を示します。
$ javac –g calc.java

calc ディレクトリー全体と calc.war ファイルを apache-tomcat-7.0.40/webapps へコピーする必要があります。また、場合によっては、calc ディレクトリー以下にほかの jsp ファイルや index.html などを作成しなければいけないかもしれません。最後に、すべてのファイルを .war ファイルに圧縮します。次に例を示します。
$ jar cvf calc.war calc

[添付の calc.zip には、サンプル Java* ファイル、jsp ファイル、index.html が含まれています。]

それでは、calc サンプル・アプリケーションを使って、インテル® VTune™ Amplifier XE 2013 で HTTP サーブレットのパフォーマンス・データを収集してみましょう。次の操作を行います。

  1. Tomcat サービスを起動します: $ Apach-tomcat-7.0.4/bin/startup.sh
  2. 実行中のターゲット Java* プロセスを見つけます: ps -ae | grep java
  3. Firefox* またはその他のブラウザーでアドレスを入力します (例: http://localhost:8080/calc )。
  4. [To a servlet] をクリックして calc クラスを実行します。
  5. 次のコマンドを実行します:
    $ amplxe-cl -collect lightweight-hotspots -knob enable-stack-collection=true -knob enable-call-counts=true -search-dir all:rp=/home/peter/apache-tomcat-7.0.40/webapps/ -target-pid 3700 -duration 30
  6. 結果用のディレクトリーが生成され、amplxe-gui で結果を開いて確認できます。

Apach Tomcat を再度実行しない場合は、次のコマンドで終了します。

$ Apach-tomcat-7.0.4/bin/shutdown.sh

hotspot を使用してターゲットプロセスをプロファイルすると、ホットな関数は “[Outside any known module]” として報告されます。

添付ファイル サイズ
calc.zip 6.33KB
tomcat-java.png 92.08KB

コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

関連記事