前回からJava SE 6u7で提供されることになった管理ツールVisualVMについて紹介しています。

前回はアプリケーションへの接続,ヒープ,スレッドなどの監視について紹介しました。しかし,先週紹介した範囲は,見せ方は異なるものの,やはりJDKに付属している管理ツールのjconsoleでも監視することが可能です。

今回はjconsoleでは提供されない機能について紹介していきます。どんな機能かというと,プロファイラです。

プロファイラはパフォーマンスチューニングには無くてはならないツールです。また,メモリーリークなど障害対策でもよく使用されます。

VisualVMでは以下の2種類のプロファイルが可能です。

  • CPU
  • Memory

CPUプロファイルでは,メソッドの実行に要した時間やメソッドコールの回数などを解析することができます。

一方のMemoryプロファイルはオブジェクトの個数やサイズ,また世代(GCを経てきた回数)などを解析することができます。

それぞれのプロファイルの使い方について,紹介していきます。

なお,VisualVMはローカルで動作するアプリケーションのプロファイルのみに対応しています。残念ながら,現状ではリモートホストで動作するアプリケーションをプロファイルすることができません。