メモリー・プロファイラ - クラス・ビュー

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

「クラス」ビューには、新規/G.C.データがJavaクラス別に編成されて表示されます。どのクラスに大量のメモリーが割り当てられているかを検出し、メモリー・リークがないかをスキャンするのに使用できます。

「クラス」タブのすべてのデータは集計されています。各レベルの各クラスおよびメソッドは1回のみ表示され、数値は個別のクラス・オブジェクトの合計です。

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

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

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

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

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

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

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

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

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

「スコープ」
プロファイラ出力の範囲を指定します。データは選択に基づいて表示されます。

スレッド・グループ別
クラスをスレッド内に、スレッド・グループでソートして表示する場合に選択します。

スレッド別
スレッド・グループに関係なくクラスをスレッドでソートして表示する場合に選択します。

クラス別
スレッドおよびスレッド・グループに関係なくクラスのみを表示する場合に選択します。デフォルトで選択されています。

スレッド・グループ別スレッド・グループ番号スレッド・グループ名
特定のスレッド・グループのみのクラスを表示して、そのスレッド・グループに素早くフォーカスできるようにする場合に選択します。

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

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

データ列

説明
「説明」 列の情報は、階層レベルによって異なります。最上位レベルでは、「説明」 にはクラス名が表示されます。2番目のレベルでは、「説明」 には最上位レベルのクラスのオブジェクトを直接作成するすべてのメソッドが表示されます。3番目以下のレベルでは、「説明」 にはすぐ上のレベルのメソッドのすべてのコール元が表示されます。

%
この列のタイトルは、選択されている数値列によって異なります。たとえば、「新規」列が選択されている場合、タイトルは「新規 %」になります。この列には、現在の行で選択されている列の合計に対する割合が表示されます。数値の割合の左に棒グラフ(ヒストグラム)が表示されます。

新規
クラスの場合、このユースケースで作成されたこのクラスのオブジェクト数です。メソッドの場合、このメソッドまたはそのコール先のメソッドによって作成された、このクラスのオブジェクト数です。

新規x
メソッドにのみ適用されます。このメソッドによって作成されたクラス・オブジェクト数が表示されます。

新規サイズ
クラスの場合、クラスで新しく作成されたオブジェクトが使用したバイト数が表示されます。メソッドの場合、このメソッドまたはそのコール先のメソッドによって作成されたクラスのオブジェクトが使用したバイト数が表示されます。

新規サイズx
メソッドにのみ適用されます。このメソッドのみで作成されたクラス・オブジェクトによって使用されているバイト数が表示されます。

GC
クラスにのみ適用されます。現在のユースケースでガベージ・コレクションが行われた、このクラスのオブジェクト数が表示されます。

GCサイズ
クラスにのみ適用されます。ガベージ・コレクションによって解放された、クラスのオブジェクトのバイト数が表示されます。

初期数
クラスにのみ適用されます。現在のユースケースが開始されたときに存在していた、このクラスのオブジェクト数が表示されます。

初期サイズ
クラスにのみ適用されます。現在のユースケースが開始されたときに、このクラスのオブジェクトが使用していたバイト数が表示されます。

最終数
クラスにのみ適用されます。現在アクティブなユースケース用に存在するか、またはユースケースの終了時点に存在する、このクラスのオブジェクト数が表示されます。

最終サイズ
クラスにのみ適用されます。このクラスのオブジェクトが現在使用しているバイト数(アクティブなユースケース用)か、またはユースケースの終了時点で使用していたバイト数が表示されます。

新規GC
クラスにのみ適用されます。メモリー内に残っている、このクラスの新しく作成されたオブジェクト数が表示されます。つまり、新しく作成されたが、ガベージ・コレクションが行われなかったオブジェクトがレポートされます。ユースケースの終了時点では、この数はユースケースのメモリー・リークを示す場合があります。

新規GCサイズ
クラスにのみ適用されます。このクラスの新しく作成されたオブジェクトによって使用され、ガベージ・コレクションが行われなかったバイト数が表示されます。

クリエータ・メソッドとそれらのコール元

各クラスの下の階層を展開すると、クラスのオブジェクトのすべての直接クリエータを表示できます。階層をさらに展開すると、コール元の直接コール元を順次表示できます。

ポップアップ・メニュー

ブランチの拡張
子要素の表示方法を指定するために使用します。選択した場合、ノードをクリックすると、複数の子を持つレベルまでのすべてのレベルが表示されます。選択しない場合、次のレベルのみが展開されます。デフォルトでは選択されています。

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

ガベージ・コレクション

このプロファイラは、メモリー・ユース・ケースの最後に自動的にガベージ・コレクションを実行します。ただし、不要な弱い参照を排除したり、ファイナライザを実行したりするだけでは十分でないこともあります。このため、ユース・ケースを終了する前に、さらにガベージ・コレクションを実行することをお薦めします。そのためには、IDEの右上の「実行」ツールバーにあるガベージ・コレクション ガベージ・コレクション」アイコンをクリックします。

各G.C.の後、データが変更されていない場合、このことは十分なガベージ・コレクションを実行したことを示します。通常は、3回のガベージ・コレクションで十分です。


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