JProfiler ヘルプ

ヒープウォーカー

ヒープスナップショット

オブジェクト間の参照が関係するヒープ分析には、ヒープスナップショットが必要です。オブジェクトへの受信参照が何であるかをJVMに直接問い合わせることはできないためです。この問いに答えるには、ヒープ全体を反復処理する必要があります。JProfilerはそのヒープスナップショットから、ヒープウォーカー内のビューにデータを提供するよう最適化された内部データベースを作成します。

ヒープスナップショットのソースには、JProfilerヒープスナップショットとHPROF/PHDヒープスナップショットの2つがあります。JProfilerヒープスナップショットは、ヒープウォーカーで利用可能なすべての機能をサポートしています。プロファイリングエージェントは、プロファイリングインターフェースJVMTIを使用してすべての参照を反復処理します。プロファイルされたJVMが別のマシンで実行されている場合、すべての情報がローカルマシンに転送され、以降の計算はそこで実行されます。HPROF/PHDスナップショットはJVMの組み込みメカニズムで作成され、JProfilerが読み込める標準フォーマットでディスクに書き込まれます。HotSpot JVMはHPROFスナップショットを作成でき、Eclipse OpenJ9 JVMはPHDスナップショットを提供します。

ヒープウォーカーの概要ページでは、JProfilerヒープスナップショットを作成するか、HPROF/PHDヒープスナップショットを作成するかを選択できます。デフォルトでは、JProfilerヒープスナップショットが推奨されます。HPROF/PHDヒープスナップショットは、別の章で説明されているような特別な状況で役に立ちます。

選択ステップ

ヒープウォーカーは、選択されたオブジェクトのセットのさまざまな側面を表示する複数のビューで構成されています。ヒープスナップショットを取得した直後は、ヒープ上のすべてのオブジェクトが表示されています。各ビューには、選択した一部のオブジェクトを現在のオブジェクトセットにするためのナビゲーションアクションが用意されています。ヒープウォーカーのヘッダー領域には、現在のオブジェクトセットに含まれるオブジェクトの数に関する情報が表示されます。

最初は、ライブメモリセクションの「すべてのオブジェクト」ビューに似た「クラス」ビューが表示されます。クラスを選択して使用→選択したインスタンスを実行すると、そのクラスのインスタンスのみを含む新しいオブジェクトセットが作成されます。ヒープウォーカーにおいて、「使用する」とは常に新しいオブジェクトセットを作成することを意味します。

新しいオブジェクトセットに対してヒープウォーカーのクラスビューを表示しても、単に直前に選択したクラスでテーブルがフィルタリングされるだけなのであまり有用ではありません。その代わりに、JProfilerは「新規オブジェクトセット」ダイアログで別のビューを提案します。このダイアログをキャンセルして新しいオブジェクトセットを破棄し、前のビューに戻ることもできます。デフォルトでは発信参照ビューが提案されますが、別のビューを選択することも可能です。これは最初に表示されるビューの設定に過ぎず、その後ヒープウォーカーのビューセレクターで自由にビューを切り替えることができます。

ヘッダー領域には2つの選択ステップが存在することが示され、retainedサイズやdeepサイズを計算するためのリンク、または現在のオブジェクトセットによって保持されているすべてのオブジェクトを使用するためのリンクが表示されます。後者を選択するとさらに別の選択ステップが追加され、そのオブジェクトセットには複数のクラスが含まれる可能性が高いため、クラスビューが提案されます。

ヒープウォーカーの下部には、ここまでの選択ステップが一覧表示されます。ハイパーリンクをクリックすると、任意の選択ステップに戻ることができます。ツールバーの最初へ移動ボタンを使用しても、最初のデータセットに到達できます。ツールバーの戻る/進むボタンは、分析を逆戻りしてやり直したい場合に便利です。

クラスビュー

ヒープウォーカー上部のビューセレクターには、現在のオブジェクトセットに関するさまざまな情報を表示する5つのビューがあります。その最初にあるのが「クラス」ビューです。

クラスビューはライブメモリセクションの「すべてのオブジェクト」ビューと似ており、クラスをパッケージにグループ化できる集約レベルセレクターを備えています。さらに、クラスの推定retainedサイズを表示することもできます。これは、ヒープからあるクラスのすべてのインスタンスが削除された場合に解放されるメモリ量です。推定retainedサイズを計算ハイパーリンクをクリックすると、新しいRetainedサイズ列が追加されます。表示されるretainedサイズは推定下限値であり、正確な数値を計算すると時間がかかりすぎるためです。正確な数値が必要な場合は、関心のあるクラスまたはパッケージを選択し、新しいオブジェクトセットのヘッダーにあるretainedサイズとdeepサイズを計算ハイパーリンクを使用してください。

1つ以上のクラスまたはパッケージの選択に基づいて、インスタンス自体、関連するjava.lang.Classオブジェクト、またはすべての保持されているオブジェクトを選択できます。ダブルクリックが最も素早い選択モードであり、選択されたインスタンスが使用されます。このケースのように複数の選択モードが利用可能な場合は、ビューの上に使用ドロップダウンメニューが表示されます。

クラスローダー関連の問題を解決する際、インスタンスをそのクラスローダーごとにグループ化しなければならないことがよくあります。インスペクションタブには「クラスローダーでグループ化」インスペクションが用意されており、そのコンテキストで特に重要であるためクラスビューでも利用できるようになっています。この分析を実行すると、上部のグループ化テーブルにすべてのクラスローダーが表示されます。クラスローダーを選択すると、下のビューのデータがそれに応じてフィルタリングされます。このグループ化テーブルは、別の選択ステップを実行するまでヒープウォーカーの他のビューに切り替えてもそのまま維持されます。別の選択ステップを実行すると、クラスローダーの選択はその選択ステップの一部となります。

割り当て記録ビュー

オブジェクトがどこで割り当てられたかという情報は、メモリリークの容疑者を絞り込む際やメモリ消費量を削減しようとする際に重要になる場合があります。JProfilerヒープスナップショットの場合、「割り当て」ビューには、割り当てが記録されているオブジェクトの割り当て呼び出しツリーと割り当てホットスポットが表示されます。その他のオブジェクトは、割り当て呼び出しツリーの「未記録のオブジェクト」ノードにグループ化されます。HPROF/PHDスナップショットでは、このビューは利用できません。

クラスビューと同様に、複数のノードを選択して上部の選択した項目を使用ボタンを使用することで、新しい選択ステップを作成できます。「割り当てホットスポット」ビューモードでは、バックトレース内のノードを選択することも可能です。これにより、選択されたバックトレースで終わる呼び出しスタック上で割り当てられた、関連するトップレベルホットスポット内のオブジェクトのみが選択されます。

JProfilerが割り当てを記録する際に保存できるもう1つの情報が、オブジェクトが割り当てられた時間です。ヒープウォーカーの「時間」ビューには、現在のオブジェクトセットに含まれるすべての記録済みインスタンスの割り当て時間のヒストグラムが表示されます。クリックしてドラッグすることで1つまたは複数の区間を選択し、選択した項目を使用ボタンで新しいオブジェクトセットを作成できます。

時間区間をより正確に選択するために、ブックマークの範囲を指定することもできます。これにより、最初と最後に選択されたブックマークの間にあるすべてのオブジェクトがマークされます。

時間ビューに加えて、参照ビューでは割り当て時間が個別の列として表示されます。ただし、割り当て時間の記録はデフォルトでは有効になっていません。時間ビューで直接オンにするか、セッション設定ダイアログの詳細設定 -> メモリプロファイリングで設定を編集できます。

最大オブジェクトビュー

最大オブジェクトビューには、現在のオブジェクトセット内で最も重要なオブジェクトのリストが表示されます。ここでの「最大」とは、ヒープから削除された場合に最も多くのメモリを解放するオブジェクトを意味します。そのサイズはretainedサイズと呼ばれます。対照的に、deepサイズは強参照を通じて到達可能なすべてのオブジェクトの合計サイズです。

各オブジェクトを展開して、そのオブジェクトによって保持されている他のオブジェクトへの発信参照を表示できます。このようにして、祖先の1つが削除された場合にガベージコレクションされる保持オブジェクトのツリーを再帰的に展開できます。この種のツリーは「ドミネーターツリー」と呼ばれます。このツリーで各オブジェクトに表示される情報は、支配的な(dominating)参照のみが表示される点を除いて、発信参照ビューと似ています。

支配されるすべてのオブジェクトが、そのドミネーターから直接参照されているわけではありません。たとえば、次の図の参照を考えてみましょう。

GCルート直接支配します直接支配します間接的に支配しますObject AObject B2Object B1Object C

オブジェクトAはオブジェクトB1とB2を支配しており、オブジェクトCへの直接参照は持っていません。B1とB2は両方ともCを参照しています。B1もB2もCを支配していませんが、AはCを支配しています。この場合、B1、B2、およびCはドミネーターツリー内でAの直接の子としてリストされ、CはB1やB2の子としてはリストされません。B1とB2については、それらを保持しているA内のフィールド名が表示されます。Cについては、参照ノード上に「[推移的参照]」と表示されます。

ドミネーターツリー内の各参照ノードの左側にあるサイズバーは、トップレベルオブジェクトのretainedサイズのうち何パーセントがターゲットオブジェクトによって引き続き保持されているかを示します。ツリーをさらにドリルダウンするにつれて、この数値は減少します。ビュー設定で、パーセンテージの基準をヒープ全体のサイズに変更することも可能です。

ドミネーターツリーには組み込みのカットオフ機能があり、親オブジェクトのretainedサイズの0.5%未満のretainedサイズしか持たないすべてのオブジェクトが除外されます。ただし、カットオフのしきい値を下回っている場合でも、常に少なくとも20個のオブジェクトが表示されます。これは、重要なオブジェクトから注意をそらすような小さな被支配オブジェクトの過度に長いリストを避けるためです。このようなカットオフが発生した場合、特別な「カットオフ」子ノードが表示され、このレベルで非表示になっているオブジェクトの数、それらの合計retainedサイズ、および単一オブジェクトの最大retainedサイズが通知されます。

個々のオブジェクトを表示する代わりに、ドミネーターツリーで最大オブジェクトをクラスごとにグループ化することもできます。ビュー上部のグループ化ドロップダウンには、この表示モードを有効にするチェックボックスがあります。さらに、トップレベルにクラスローダーのグループ化を追加することもできます。クラスローダーのグループ化は最大オブジェクトが計算された後に適用され、最大オブジェクトのクラスを誰がロードしたかを示します。特定の1つのクラスローダーに対して最大オブジェクトを分析したい場合は、まず「クラスローダーでグループ化」インスペクションを使用してください。

グループ化ドロップダウンには、最大オブジェクトをそれらを所有するフレームワークコンテナごとにグループ化するコンテナでグループ化チェックボックスがあります。この場合、トップレベルにはSpring application contextやHTTP sessionなど、現在のオブジェクトセットで検出されたコンテナのコンテナグループノードのみが表示され、そのコンテナによって管理されているオブジェクトの累積retainedサイズが示されます。サポートされているコンテナが検出されない場合、ビューは空になります。コンテナはネストされていたり同じオブジェクトを管理したりすることがあるため、それらのretainedサイズは個々のフットプリントを表しており、必ずしも単純加算できるとは限りません。

コンテナノードを展開すると、Spring beanやセッション属性など、管理対象のオブジェクトがそれぞれ独自のretainedサイズとともに直接表示されます。管理対象オブジェクトを展開すると、その下に通常のドミネーターツリーが表示されます。

最大オブジェクトビューの上にある表示モードセレクターを使用すると、サンバースト図に切り替えることができます。この図は一連の同心円状の分割リングで構成され、ドミネーターツリーの最大深度までのコンテンツ全体を1つの画像で表示します。参照は最も内側のリングから発生し、円の外縁に向かって伝播します。この視覚化により、情報密度の高い平坦化された視点が得られ、参照パターンを発見したり、特別なカラーコーディングを通じて大きなプリミティブ配列やオブジェクト配列を一目で確認したりできます。

現在のオブジェクトセットがヒープ全体であり、コンテナのグループ化がアクティブでない場合、円の全周は使用ヒープサイズに対応します。最大オブジェクトビューにはヒープ全体の0.1%以上を保持するオブジェクトのみが表示されるため、これら最大オブジェクトによって保持されていないすべてのオブジェクトに相当する、かなりのセクターが空になります。コンテナのグループ化を使用した場合、全周は表示されているすべてのコンテナフットプリントの合計に対応します。コンテナは重複する場合があるため、この合計が使用ヒープサイズを超えることがあります。このモードでは、表示されているコンテナ外のオブジェクトに対する空のセクターは表示されません。

いずれかのリングセグメントをクリックすると円の新しいルートが設定され、それによって図に表示可能な最大深度が拡張されます。図の中空の中心をクリックすると、前のルートに戻ります。新しいルートが設定されている場合、円の全周はルートオブジェクトのretainedサイズに対応します。コンテナルートの場合、管理対象オブジェクトの累積retainedサイズに対応します。空のセクターは、通常のルートオブジェクトの自己サイズと、最大保持オブジェクトのリストに存在しない追加オブジェクトを表します。現在のオブジェクトセットがヒープ全体ではなく、新しいルートが設定されていない場合、全周は表示されているすべての最大オブジェクトの合計に対応し、空のセクターは表示されません。コンテナルートも、そのサイズが表示されている管理対象オブジェクトの合計であるため、空のセクターはありません。

マウスを合わせると、インスタンスとその直後の保持オブジェクトに関する詳細情報が図の右側に表示されます。コンテナの場合、サイドパネルには代わりにその管理対象オブジェクトが表示されます。マウスがいずれのリングセグメントの上にもない場合、右側のリストには最も内側のリングにある最大オブジェクトが表示されます。そのリストの上にカーソルを置くと対応するリングセグメントがハイライトされ、リストアイテムをクリックすると図の新しいルートが設定されます。新しいオブジェクトセットを作成するには、リングセグメント上およびリストアイテム上の両方にあるコンテキストメニューのアクションから選択できます。

参照ビュー

これまでのビューとは異なり、参照ビューは少なくとも1つの選択ステップを実行した場合にのみ使用可能です。受信参照ビューと発信参照ビューは個々のオブジェクトをすべて表示し、マージされた参照ビューは絞り込まれたオブジェクトセットに対してのみ解釈可能であるため、初期オブジェクトセットに対してこれらのビューを使用しても有用ではありません。

発信参照ビューは、IDEのデバッガーが表示するビューと似ています。オブジェクトを開くと、プリミティブデータと他のオブジェクトへの参照が表示されます。任意の参照タイプを新しいオブジェクトセットとして選択でき、一度に複数のオブジェクトを選択することも可能です。クラスビューと同様に、保持されているオブジェクトや関連するjava.lang.Classオブジェクトを選択できます。選択したオブジェクトが標準コレクションである場合は、1つのアクションで含まれるすべての要素を選択することもできます。クラスローダーオブジェクトの場合は、ロードされたすべてのインスタンスを選択するオプションがあります。

null参照を持つフィールドは、メモリ分析の妨げになる可能性があるためデフォルトでは表示されません。デバッグ目的ですべてのフィールドを表示したい場合は、ビュー設定でこの動作を変更できます。

表示されたインスタンスの単純な選択に加えて、発信参照ビューには強力なフィルタリング機能があります。ライブセッションの場合、発信参照ビューと受信参照ビューの両方に高度な操作・表示機能があり、これについても同じ章で説明しています。

受信参照ビューは、メモリリークを解決するためのメインツールです。オブジェクトがガベージコレクションされない理由を調べるには、GCルートへのパスを表示ボタンを使用してガベージコレクタールートへの参照チェーンを見つけます。メモリリークに関する章に、この重要なトピックに関する詳細情報が記載されています。

マージされた参照

多数の異なるオブジェクトについて個別に参照を確認するのは手間がかかるため、JProfilerでは現在のオブジェクトセット内のすべてのオブジェクトの発信参照および受信参照をマージして表示できます。デフォルトでは、参照はクラスごとに集約されます。あるクラスのインスタンスが同じクラスの他のインスタンスから参照されている場合、元のインスタンスに加えてこれらのクラス再帰参照によるインスタンスを示す  特別なノードが挿入されます。このメカニズムにより、リンクドリフトなどの一般的なデータ構造内の内部参照チェーンが自動的に折りたたまれます。

マージされた参照をフィールドごとにグループ化して表示することも選択できます。その場合、各ノードはクラスの特定のフィールドや配列のコンテンツなどの参照タイプになります。標準コレクションの場合、累積を妨げる内部参照チェーンがコンパクトにまとめられるため、「java.util.HashMap の map value」のような参照タイプが表示されます。クラス集約とは異なり、このメカニズムはJREの標準ライブラリから明示的にサポートされているコレクションに対してのみ機能します。

「マージされた発信参照」ビューでは、インスタンス数は参照先のオブジェクトを指します。「マージされた受信参照」ビューでは、各行に2つのインスタンス数が表示されます。最初のインスタンス数は、現在のオブジェクトセット内のいくつのインスタンスがこのパスに沿って参照されているかを示します。ノードの左側にあるバーアイコンがこの割合を視覚化します。矢印アイコンの後の2番目のインスタンス数は、親ノードへの参照を保持しているオブジェクトを指します。選択ステップを実行する際、選択された方法で参照されているオブジェクトを現在のオブジェクトセットから選択するか、それとも選択された参照を持つオブジェクト(参照保持者)に関心があるかを選択できます。

「マージされた支配参照」ビューを使用すると、現在のオブジェクトセット内の一部またはすべてのオブジェクトをガベージコレクションできるようにするために、どの参照を削除する必要があるかを特定できます。支配参照ツリーは、最大オブジェクトビューのドミネーターツリーをクラスごとに集約したマージ逆ツリーとして解釈できます。参照の矢印は2つのクラス間の直接参照を表していない場合があり、非支配的な参照を保持する他のクラスが間に介在している可能性があります。複数のガベージコレクタールートが存在する場合、現在のオブジェクトセット内の一部またはすべてのオブジェクトに対して支配参照が存在しないことがあります。

デフォルトでは、「マージされた支配参照」ビューは受信側の支配参照を表示し、ツリーを開くことでGCルートによって保持されているオブジェクトに到達できます。場合によっては、参照ツリーが多くの異なるパスに沿って同じルートオブジェクトにつながることがあります。ビュー上部のドロップダウンで「GCルートからオブジェクトへ」ビューモードを選択すると、ルートがトップレベルにあり、現在のオブジェクトセット内のオブジェクトがリーフノードにある逆の視点を確認できます。この場合、参照はトップレベルからリーフノードに向かいます。どちらの視点が適しているかは、排除したい参照が現在のオブジェクトセットに近いか、それともGCルートに近いかによって決まります。

インスペクション

「インスペクション」ビューは、それ単体ではデータを表示しません。他のビューでは利用できないルールに従って新しいオブジェクトセットを作成する、さまざまなヒープ分析機能を提供します。たとえば、スレッドローカルによって保持されているすべてのオブジェクトを確認したい場合、これを受信・発信参照ビューで行うのは不可能です。インスペクションはいくつかのカテゴリにグループ化されており、それぞれの説明で解説されています。

インスペクションは、計算されたオブジェクトセットをグループに分割できます。グループはヒープウォーカー上部のテーブルに表示されます。たとえば、「重複文字列」インスペクションは、重複している文字列の値をグループとして表示します。参照ビューにいる場合は、選択した文字列値を持つjava.lang.Stringインスタンスを下部に確認できます。初期状態では、グループテーブルの先頭行が選択されています。選択を変更することで、現在のオブジェクトセットを変更できます。グループテーブルのインスタンス数列とサイズ列は、行を選択したときに現在のオブジェクトセットがどれだけの大きさになるかを示します。

グループの選択はヒープウォーカーにおける独立した選択ステップではありませんが、インスペクションによって作成された選択ステップの一部となります。グループの選択状況は、下部の選択ステップペインで確認できます。グループの選択を変更すると、選択ステップペインは即座に更新されます。

グループを作成する各インスペクションは、そのインスペクションのコンテキストでどのグループが最も重要であるかを決定します。これは必ずしも他の列の自然なソート順と一致するとは限らないため、グループテーブルの優先度列にはインスペクションのソート順を強制する数値が含まれています。

大きなヒープに対するインスペクションの計算には負荷がかかる場合があるため、結果はキャッシュされます。これにより、待つことなく履歴を遡って以前に計算されたインスペクションの結果を確認できます。

ヒープウォーカーグラフ

インスタンスとその参照を最も現実的に表現できるのはグラフです。グラフは視覚的な密度が低く、一部の分析タイプには不向きですが、オブジェクト間の関係を視覚化するには依然として最適な方法です。たとえば、循環参照はツリー構造では解釈が困難ですが、グラフでは一目瞭然です。また、ツリー構造ではどちらか一方しか表示できないのに対し、受信参照と発信参照を同時に確認できる点も有利です。

ヒープウォーカーグラフには、現在のオブジェクトセットのオブジェクトが自動的に表示されることはなく、現在のオブジェクトセットを変更してもクリアされません。発信参照ビュー、受信参照ビュー、または最大オブジェクトビューから、1つ以上のインスタンスを選択してグラフで表示アクションを使用することで、選択したオブジェクトを手動でグラフに追加します。

グラフ内のパッケージ名はデフォルトで短縮表示されます。CPU呼び出しグラフと同様に、ビュー設定で完全な表示を有効にできます。参照は矢印として描画されます。参照の上にマウスを移動すると、特定の参照の詳細を示すツールチップウィンドウが表示されます。参照ビューから手動で追加されたインスタンスは青色の背景になります。インスタンスがより最近に追加されたものであるほど、背景色が濃くなります。ガベージコレクタールートは赤色の背景、クラスは黄色の背景になります。

デフォルトでは、参照グラフは現在のインスタンスの直接の受信参照と発信参照のみを表示します。任意のオブジェクトをダブルクリックすることで、グラフを展開できます。これにより、移動している方向に応じて、そのオブジェクトの直接の受信参照または直接の発信参照のいずれかが展開されます。インスタンスの左右にある展開コントロールを使用すると、受信参照と発信参照を選択的に開くことができます。逆戻りする必要がある場合は、元に戻す機能を使用してグラフの以前の状態を復元し、ノードが多すぎて混乱するのを防ぐことができます。グラフを整理するために、接続されていないすべてのノードを削除したり、すべてのオブジェクトを削除したりするアクションも用意されています。

受信参照ビューと同様に、グラフにはGCルートへのパスを表示ボタンがあり、利用可能な場合はガベージコレクタールートへの1つ以上の参照チェーンを展開します。さらに、2つのインスタンスが選択されている場合にアクティブになる選択した2つのノード間のパスを検索アクションもあります。有向パスと無向パスを検索でき、オプションで弱参照に沿った検索も可能です。適切なパスが見つかった場合、赤色で表示されます。

初期オブジェクトセット

ヒープスナップショットを取得する際、初期オブジェクトセットを制御するオプションを指定できます。割り当てを記録している場合、記録されたオブジェクトを選択チェックボックスにより、最初に表示されるオブジェクトが記録済みのものだけに制限されます。ヒープウォーカーによって非参照オブジェクトが削除されるため、通常、この数値はライブメモリビューの数値とは異なります。未記録のオブジェクトもヒープスナップショット内には存在しており、初期オブジェクトセットに表示されないだけです。以降の選択ステップにより、未記録のオブジェクトに到達できます。

さらに、ヒープウォーカーはガベージコレクションを実行し、ソフト参照を除いて弱く参照されているオブジェクトを削除します。強参照されているオブジェクトのみが関係するメモリリークを探す際、弱く参照されているオブジェクトは邪魔になるため、通常はこの動作が望ましいです。ただし、弱く参照されているオブジェクトに関心がある場合は、それらをヒープスナップショットに保持するようヒープウォーカーに指示できます。JVMにおける4つの弱参照タイプは「soft」、「weak」、「phantom」、「finalizer」であり、ヒープスナップショット内にオブジェクトを保持するためにどれで十分とするかを選択できます。

弱く参照されているオブジェクトが存在する場合、ヒープウォーカーの「弱参照」インスペクションを使用して、現在のオブジェクトセットからそれらを選択または削除できます。

ヒープのマーク

特定のユースケースのために割り当てられたオブジェクトを調べたいことがよくあります。そのユースケースの前後で割り当て記録を開始および停止することでも実現できますが、オーバーヘッドがはるかに少なく、割り当て記録機能を他の目的のために温存できる優れた方法があります。ヒープウォーカーの概要で紹介されており、プロファイリングメニューやトリガーアクションとしても利用できるヒープをマークアクションは、ヒープ上のすべてのオブジェクトを「古い」ものとしてマークします。次のヒープスナップショットを取得した際、何が「新しい」オブジェクトであるかが明確になります。

以前のヒープスナップショットまたはヒープのマーク呼び出しが存在する場合、ヒープウォーカーのタイトル領域に新しいインスタンス数と、新規を使用および古いものを使用という2つのリンクが表示され、その時点以降に割り当てられたインスタンスか、それ以前に割り当てられて生存しているインスタンスのいずれかを選択できます。この情報は各オブジェクトセットで利用できるため、まずドリルダウンしてから、後で新規または古いインスタンスを選択することができます。