最初にユーザーインターフェースを確認する
dotMemory での作業は、ある種の犯罪捜査 (dotMemory によるメモリ分析) のようなものだと考えてください。 ここでの主なアイデアは、データを収集し (1 つ以上のメモリスナップショット)、多数の容疑者 (問題を引き起こす可能性のある解析対象) を選ぶことです。 まず容疑者のリストから始めて、このリストを絞り続けます。 有罪判決を下すまで、1 人の容疑者が別の容疑者のところに連れて行ってくれるかもしれません。

この分析コンセプト (調査範囲を大きなエンティティから小さなエンティティに絞り込む) こそが、dotMemory が他のプロファイラーと大きく異なる点です。 競合他社とは異なり、dotMemory では個別のオブジェクトだけでなく、いわゆる オブジェクトセットを操作することができます。 オブジェクトセットとは、特定の条件によって選択されたオブジェクトの数です。 理解を容易にするために、オブジェクトセットを何らかのクエリ (SQL クエリに非常に似ています) の結果として考えてください。 たとえば、dotMemory に「SomeCall(); 呼び出しによって作成され、Gen 2 に昇格されたすべてのオブジェクトを選択する」や 「インスタンス A によってメモリに保持されたすべてのオブジェクトを選択する」など と指示できます。
ユーザーインターフェース

dotMemory ユーザーインターフェースは、段階的調査の考え方を完全に反映しています。
分析
1 つ以上のメモリスナップショットを収集したら、分析を開始できます。 dotMemory のメインウィンドウの新しいタブに新しい分析が開きます。 同じデータをいくつか独立して解析することができます(
ボタンをクリックすると他のタブで開きます)。
分析パス
分析ページの左側には、いわゆる分析パスリストがあります。 文字通り、これはあなたの調査の道を示すリストです。 分析対象として選択したすべての科目(3)がこのリストに表示されます。 あなたの調査が行き詰まっていることを理解したなら、単に間違った決定(サブジェクト)を選んだ分析経路のステップに戻って、別のものを選びましょう。
分析対象
対象は分析するものです。 わかりやすくするために、容疑者リストを絞り込むという概念に戻りましょう。まずはスナップショット全体やメモリトラフィックといった大きな対象を調査し、そこからリサーチのスコープをより小さなエンティティへ狭めていきます。 このレベルでは、特定の条件で選ばれた複数のオブジェクトセットを扱います。 最終的には、さらに下位レベルの個別のオブジェクトインスタンスを分析することになるかもしれません。
ビュー
各対象は異なる視点―ビューから調査できます。 たとえば、 ドミネーター ビューでは、どのオブジェクトが対象をメモリに保持しているか(ガベージコレクションを防ぐ)を表示でき、 呼び出しツリー ビューでは、どの呼び出しが対象を作成したのかを特定できます。 前述したように、ひとつの容疑者が別の容疑者につながることもあります。 たとえば、 ドミネーター ビューの各項目について、現在の項目を保持しているオブジェクトや、その項目が保持しているオブジェクトのサブセットを選択できます。
分析の実行方法の詳細については、 結果の分析の章を参照してください。