オブジェクトセットの分析
オブジェクトセットは、特定の条件によってグループ化されたオブジェクトの数です。例: Gen 2 のすべてのオブジェクト、他の特定のオブジェクトによって保持されているすべてのオブジェクト、特定の呼び出しによって割り当てられたすべてのオブジェクトなど。
オブジェクトセットは調査の主な対象です。オブジェクトセットの分析を支援するために、dotMemory では、このセクションで説明するさまざまなビューでオブジェクトセットを表示できます。
ビューを選択する
オブジェクトセットの特定のビューを選択するには、ビューリスト内の対応するアイテムをクリックします。

オブジェクトセットの詳細をエクスポートする
特定のオブジェクトセットに関する詳細を他の人と共有する必要がある場合があります。dotMemory を使用すると、詳細をファイルにエクスポートできます。使用可能なファイル拡張子: .json または .bson。
エクスポートされたデータ: セット内のインスタンスごとに、dotMemory はその送信参照をコピーします。参照ツリーの最大深さは、深さパラメーターで指定されます。
オブジェクトセットの詳細をファイルにエクスポートするには
任意の分析ビューで、必要なオブジェクトセットを選択します。
コンテキストメニューでオブジェクトをエクスポートするを選択します。
ファイル名、参照ツリーの深さ、ファイル拡張子を指定して、保存をクリックします。
関連ページ:
タイプ
タイプビューには、選択したオブジェクトセット内のオブジェクトのリストが表示されます。便宜上、すべてのオブジェクトはタイプ別にグループ化されています。リストの各行は特定のタイプを表します。セット内に存在するそのタイプのすべてのオブジェクトは、この行にカウントされます。タイプビューを使用すると、メモリを大量に消費するオブジェクトやメモリ内にあってはならないオブジェクトを識別できます。このリストは、次の列で構成されています。タイプ型名。オブジェクトカウント同じ種類のオブジェクトの数。バイト数オブジェク...
ドミネーター
ドミネータービューを使用すると、アプリでメモリがどのように保持されているかを理解できます。たとえば、文字列がアプリのメモリのかなりの部分を消費していることがわかっています。ただし、おそらく、最適化の対象はこれらの文字列自体ではなく、格納するデータ構造です。ドミネータービューは、「誰がメモリを保持するか」という質問に答えます。これは、非効率的なメモリ使用を分析するときに非常に重要です。この質問に正しく答えるには、ドミネーターの概念を理解している必要があります。支配者とは何ですか? :アプリのルート...
同様の保持
同様の保持ビューは、オブジェクトを保持パスの類似性によってグループ化します。各オブジェクトセットについて、ビューにはルートへの 2 つの最短パスが表示されます。dotMemory は、さまざまな最短パスの中から、互いに最も異なる 2 つのパスのみを選択することに注意してください。同様の保持ビューを使用すると、同じ型のオブジェクトが論理的にどこに属しているかを区別できます。例: 配列内の複数の変数は同じ保持パスを持ちますが、これは他の配列の変数とは異なります。同様の保持を使用して、オブジェクトがま...
インスタンス数
インスタンス数ビューは、どのインスタンスがオブジェクトセットを構成しているかを示します。より詳細な分析のために特定のインスタンスを選択するための手段としてこのビューを使用してください。インスタンスのリストは、以下の列で構成されています。タイプ型名。アドレスインスタンスの仮想メモリアドレス。バイト数インスタンスのサイズ(バイト単位)。保持されたバイト数インスタンスによって排他的に保持されるオブジェクトの全体サイズ (バイト単位)。サンプル:オブジェクトのフィルター:分析に関係のないオブジェクト
呼び出しツリー
呼び出しツリービューには、選択したオブジェクトセットの作成に関与するスタックトレースが表示されます。このビューを使用して、「どの関数がオブジェクトを作成したか」を問い、メモリを過剰に割り当てる関数を特定します。分析を簡素化するために、dotMemory では、コールツリーをつららまたはサンバーストチャートとして視覚化できます。呼び出しツリー:呼び出しツリーの各ノードは関数呼び出しを表します。関数名の横の数字は、呼び出しによって割り当てられたオブジェクトのサイズ、またはこれらのオブジェクトの数を...
バックトレース
コールツリーと同様に、バックトレースビューには、特定のオブジェクトセットを作成した呼び出しのリストが表示されます。ただし、コールツリーとは異なり、呼び出しは、オブジェクトセットを直接作成した呼び出しから始まり、スタックの最初の呼び出しまで降順に表示されます。つまり、バックトレースは呼び出しツリーの逆です。呼び出しのリストは以下の列で構成されています。機能関数名。バイト数呼び出しによって割り当てられたオブジェクトのサイズ。オブジェクトカウント呼び出しによって割り当てられたオブジェクトの数。名前空間...