遅ればせながら、明けましておめでとうございます。本年もJava技術最前線ではJavaの新しい技術を紹介していく所存ですので、よろしくお願いします。

 さて、新年最初のJava技術最前線は、昨年に引き続いてVisualVMについて解説していきます。

 前回までの説明でVisualVMはプラグインを用いて、拡張できることを示しました。拡張できる個所として、以下5種類があります。

  • タブ
  • サブタブ
  • メニュー
  • アプリケーションのタイプ
  • データソース

 先月まで、この5種類の中で最も多く使用されるタブを使用し、ヒープの使用状況をグラフで表示するプラグインを作成してきました。

 今月は、サブタブを使用したプラグインの作成方法について解説していきます。

 サブタブというのはタブの中に表示されるコンテンツの中で表示されるタブのことです。前回まで作成してきたタブを使用したプラグインでも、コンテンツはサブタブを使用して表示してきました。

 サブタブを使用するプラグインは、既存のタブのコンテンツにサブタブを追加するプラグインになります。

 VisualVMでは、アプリケーションに接続すると、デフォルトで[概要]、[監視]、[スレッド]、[プロファイラ]の4種類のタブが表示されます。これらのタブにサブタブを追加することになります。

 ただし、[プロファイラ]タブだけは拡張することができません。

 ここでは、前回と同じくヒープの使用量をグラフで表示するプラグインを作成します。ただし、独立したタブではなく、[監視]タブの右上に表示されるメモリ使用量のサブタブに追加していくことにします。

 図1にプラグインの実行例を示します。

図1●プラグインの実行例
図1●プラグインの実行例
[画像のクリックで拡大表示]

 右上に表示されるメモリのサブタブはデフォルトでは[ヒープ]、[PermGen]の2種類しかありません。そこに、[Eden]、[Survivor]、[Tenured]の3種類のサブタブが追加されています。

 このように既存のタブにサブタブを追加していくのが、今回紹介するプラグインです。プラグイン名はヒープの使用量を示すので、HeapViewとしました。

サンプルのソース (こちらからダウンロードできます)
Installer.java
HeapViewProvider.java
HeapView.java