メモリー・プロファイラ - 参照ビュー

「実行」メニュー次の選択「メモリー・プロファイル」プロジェクト

「参照」ビューには、Javaクラスによって編成されたヒープ・データが表示されます。このビューを使用して、一連のクラスによって使用されているメモリーの量を調査し、メモリーでオブジェクトを保持している参照を見つけることができます。

「参照」ビューに値を表示するには、ユースケースを実行して終了する必要があります。

注意: 「参照」ビューは、「ヒープ・スナップショットの有効化」チェック・ボックスが「実行構成の編集」ダイアログの「ツール設定」「プロファイラ」メモリー・ページで選択されている場合に使用できます。詳細

プロファイラ・ツールバー

開始ユースケース 開始ユースケース
クリックすると、新規ユースケースが開始されます。

終了ユースケース 終了ユースケース
クリックすると、現在アクティブなユースケースが終了します。

ユースケースのラベル ユースケースのラベル
クリックして「ユースケース名の変更」ダイアログを開き、ユースケースに新しい名前を付けます。デフォルト名はUse Caseであり、デフォルト名が必要になるたびに数字が増えていきます。

最初のユースケース 最初のユースケース
クリックすると、セッションの最初のユースケースが表示されます。現在のユースケース自体がセッションの最初のユースケースである場合は選択できません。

前のユースケース 前のユースケース
クリックすると、セッション内で1つ前にあるユースケースが表示されます。現在のユースケース自体がセッションの最初のユースケースである場合は選択できません。

ユースケースのリスト
クリックすると、すべてのユースケースが表示され、任意のユースケースに移動できます。

次のユースケース 次のユースケース
クリックすると、セッション内の次のユースケースが表示されます。

最後のユースケース 最後のユースケース
クリックすると、セッションの最後のユースケースが表示されます。アクティブなユースケースがある場合は、常にそれが最後のユースケースになります。

比較対象
クリックして現在のユースケースと比較するユースケースを選択します。前のユースケースと比較するには、「前のユースケース」を選択します。2つのユースケースを比較して、パフォーマンスに大きな影響を与えないメモリー・リークを検出できます。

表示
クリックして比較オプションを選択します。前のユースケースにないユースケース・オプションでは、現在のユースケースのデータを前のユースケースと比較し、前のユースケースにないデータを表示します。「差異」オプションでは、現在のユースケースと「比較対象」で選択したユースケースの値の差異を表示します。差異データは、個々の列にデルタ()記号付きで表示されます。

スコープ
スナップショット・データを表示する形式を選択します。「参照」ビューの様々な有効範囲の詳細は、このトピックの有効範囲のセクションを参照してください。

クラス・フィルタ クラス・フィルタ
ビューに表示されるクラスを制限するフィルタ式を入力します。

フィルタ履歴
リストからフィルタを選択するか、「フィルタの編集」を選択して新規フィルタを作成します。

参照スナップショットの結果の概要

各クラスは階層の上部に位置します。クラスおよびクラスの合計が一番上のレベル、そのクラスのオブジェクトが次のレベルになります。

参照元と参照先

参照スナップショットに表示される各オブジェクトは、参照元か参照先のどちらかです。参照元には先頭に「参照元」アイコン(参照元)が表示され、参照先には先頭に「参照先」アイコン(参照先)が表示されます。

データ列

番号
クラス・レベルでは、クラスのオブジェクトの数。オブジェクト・レベルでは、「番号」は常に1です。

サイズ
クラス・レベルでは、このクラスのオブジェクトによって使用される合計バイト数。オブジェクト・レベルでは、このオブジェクトによって使用されるバイト数。

所有
クラス・レベルでは、クラスのすべてのオブジェクトによって所有されるオブジェクトの数。オブジェクト・レベルでは、このオブジェクトによって所有されるオブジェクトの数。

所有サイズ
クラス・レベルでは、クラス内のすべてのオブジェクトによって所有されるオブジェクトに使用されるバイト数。オブジェクト・レベルでは、このオブジェクトに所有されるオブジェクトに使用されるバイト数。

所有されるオブジェクトとは、親のクラスまたはオブジェクトによってガベージ・コレクションが抑止されているオブジェクトです。一部のプロファイラでは、保有オブジェクト、つまりメモリーに保有されるオブジェクトと呼ばれます。

∆番号
クラス・レベルでは、クラスのすべてのオブジェクトによって所有されるオブジェクトの数の差異を表示します。オブジェクト・レベルでは、このオブジェクトによって所有されるオブジェクトの数の差異を表示します。この列は、「表示」メニューで「差異」オプションが選択されている場合に表示されます。

∆サイズ
クラス・レベルでは、このクラスのオブジェクトによって使用される合計バイト数の差異を表示します。オブジェクト・レベルでは、このオブジェクトによって使用されるバイト数の差異を表示します。この列は、「表示」メニューで「差異」オプションが選択されている場合に表示されます。

∆所有
クラス・レベルでは、クラスのすべてのオブジェクトによって所有されるオブジェクトの数の差異を表示します。オブジェクト・レベルでは、このオブジェクトによって所有されるオブジェクトの数の差異を表示します。この列は、「表示」メニューで「差異」オプションが選択されている場合に表示されます。

∆所有サイズ
クラス・レベルでは、クラス内のすべてのオブジェクトによって所有されるオブジェクトに使用されるバイト数の差異を表示します。オブジェクト・レベルでは、このオブジェクトによって所有されるオブジェクトに使用されるバイト数の差異を表示します。この列は、「表示」メニューで「差異」オプションが選択されている場合に表示されます。

有効範囲

直接参照
デフォルトで選択されています。クラス内のオブジェクトおよび各オブジェクトの直接の参照先および参照元がすべて表示されます。

所有者ツリー
オブジェクトによって所有されているオブジェクトまたはオブジェクトを所有しているオブジェクトのみが表示されます。

GCルートへの最短パス
オブジェクトと最も近いJVM GCルートとの間の最短パス(つまり参照の連鎖)が表示されます。これは参照先、つまりGCルートからオブジェクトへの参照のパスです。

GCルートへの10個のパス
オブジェクトと最も近いJVM GCルートとの間のパス(つまり参照の連鎖)が10個まで表示されます。1つ目よりも後のパスはバックグラウンドで計算されます。

GCルートへの100個のパス
オブジェクトと最も近いJVM GCルートとの間のパス(つまり参照の連鎖)が100個まで表示されます。1つ目よりも後のパスはバックグラウンドで計算されます。

ポップアップ・メニュー

最初の2つのポップアップ・メニューの選択によって、スナップショット・ビューの状態が切り替わります。次の2つはナビゲーション・コマンドです。

ブランチの拡張
階層レベルをクリックして拡張するとき、1つの参照連鎖に沿って可能なかぎり拡張するように指定する場合に選択します。このオプションを選択しない場合は、階層をクリックすると次のレベルのみが開きます。

強参照にのみ従う
弱い参照、ソフト参照または偽参照には従わないように指定する場合に選択します。有効範囲がGCルートへの最短パスの場合、このような参照が含まれるパスはありません。このオプションを選択しない場合は、すべての参照に従います。

インスタンスに移動
現在選択されているオブジェクトの2つ目のレベルに移動する場合に選択します。参照元および参照先のどちらでも移動できます。

ソースに移動
現在選択しているクラスをJavaソース・エディタで開く場合に選択します。


CPUプロファイリング
メモリー・プロファイリング
リモート・プロファイリング