[ Topページへ戻る ]

Java HotSpot

2004.4.18よりアクセス

はじめに

HotSpotは、Java 2 Standard Edition, ver.1.3から搭載されたJava仮想マシンのエンジンです。具体的には、Javaを実行する際にJavaバイトコードからCPUのマシンコードに最適化しながらコンパイルする機能と、効率的なメモリ管理・ガベージコレクションを行う機能を持ったエンジンです。

HotSpotの調整

jvmstat

jvmstatは、Java VM(HotSpot)の活動状況を測るためのツールです。2007年4月現在、Ver.3.0が公開されています。J2SE 1.4.2以降のJava HotSpot VMに対応しています。以下URLから入手できます。

インストール

jvmstat Ver.3.0は、J2SE 1.4.2以降(J2SE 5.0、JSE 6)に対応しているので、これを入手しインストールします。

2007年4月8日現在、builjvmstat-2.0_b11.zipというファイルがダウンロードできます。これを適当なディレクトリに解凍・展開します。

torutk$ cd /java
java$ unzip /tmp/jvmstat-2.0_b11.zip
   :
java$ cd jvmstat
jvmstat$ ls
bat/  bin/  classes/  docs/  etc/  policies/
jvmstat$

コマンド実行環境の設定

jvmstatを使用するための設定を行います。WindowsとUNIXとそれぞれ用に起動スクリプトが提供されています。Windows用は、batディレクトリの中に、UNIX用はbinディレクトリの中に格納されています。

コマンド名
configurepolicy
jvmps
jvmsnap
jvmstat
perfagent
visualgc

実行方法

まず、計測対象Javaプログラムを実行する際に、コマンドラインオプション-XX:+UsePerfDataを指定します。このオプションを指定しないと、jvmstatツール群によって計測することができません。

jvmstat計測対象として実行
torutk$ java -XX:+UsePerfData -jar Java2Demo.jar
 

jvmpsコマンドによるVMIDの取得

jvmpsによる計測対象JavaVMのVMID取得
torutk$ jvmps
1664 jvmps.jar
1124 Java2Demo.jar
torutk$ 

visualgcによるGCのヴィジュアル化

visualgcによる計測対象JavaVMのGC状況取得
torutk$ visualgc 1124

以下のような画面が表示され、活動中のJavaVMのHotspotのガベージコレクションおよびコンパイル状況が可視化されます。

参考文献