GCの可視化ツールを調べてみた

JavaGCを可視化するツールについて調べてみた。
GCのインターバルが短いとGCによる負荷が高いといえるため、ヒープサイズを調整することで性能改善が見込まれる。

リアルタイムで可視化

visualgcを用いる。
1. jvmstat のページのダウンロードリンクから、 jvmstat をダウンロード(※visualgcも含まれている)
2. %JAVA_HOME%/bin/jps.exe を実行し、GC監視対象のJVMプロセス番号を確認する
3. %JVMSTAT_HOME%/bat/visualgc.cmd を、上記で確認したJVMプロセス番号を引数で指定して実行する

ログ出力&Viewerで可視化

実運用中は、リアルタイム表示は負荷が大きいため非現実的。
そこで、JVMの起動オプションでログ出力を指定し、ログをはかせる。で、そのログをGCViewerで視覚的に表示。
1. 下記のコマンドでJVMを起動

java -Xloggc:logFileName.log -XX:+PrintGCDetails 起動するJavaクラス

2. GCViewerの公式サイトからGCViewerをダウンロード
3. 解凍し、中にある jar をダブルクリックで実行
4. File>Open File で、上記で出力されたログファイルを開く