プロファイリング結果の分析
十分なプロファイリングデータを収集したら、メモリの問題の原因の特定 (分析ステップ) に進むことができます。最初にユーザーインターフェースを確認するセクションで説明したように、メモリ分析では、分析対象 (特定のオブジェクトセットまたはインスタンス) を継続的に選択し、これらの対象をさまざまな視点 (ビュー) から調べることを前提としています。この章では、dotMemory ビューと分析ワークフローについて詳しく説明します。
さまざまな分析タブでスナップショットを開く
一度に同じデータに対して複数の分析を実行できます。
新しい分析を開始するには、Ctrl+Alt+T の組み合わせを使用します。
現在の分析を新しいタブにコピーするには、dotMemory ウィンドウの右上隅にある
をクリックするか、Ctrl+T の組み合わせを使用します。
ビュー履歴を移動する
Web ブラウザーがアクセスしたインターネットページの履歴を保存するのと同様に、dotMemory は dotMemory ビューを通じてナビゲーション履歴を保存します。Web ブラウザーと同様に、ナビゲーションボタンを使用して、以前に開いたビューに戻ったり進めたりできます。これらのボタンは、既存の分析対象間を移動するのではなく、アクセスしたのとまったく同じ順序で dotMemory ビュー間を移動することに注意してください。
前のビュー / 次のビューに移動するには
左上の
または
ボタンに対応してクリックします。マウスまたはキーボードに特別なハードウェアナビゲーションボタンがある場合は、それらも使用できます。
タイプ宣言に移動する
場合によっては、疑わしいオブジェクト(たとえば、リークを引き起こす可能性のあるオブジェクト)をさらに調査するには、ソースコードを調べる必要があります。dotMemory および Visual Studio + ReSharper(または dotMemory および JetBrains Rider)がマシンにインストールされている場合は、IDE でオブジェクトの型宣言にすぐに移動できます。この機能は、オブジェクトの型を表示するすべての dotMemory ビューで使用できます。
要件:
スナップショットがあるアプリケーションのソースコードは、Visual Studio または JetBrains Rider で開かれます。
(Visual Studio のみ)ReSharper は Visual Studio にインストールされます。
(Visual Studio のみ)dotMemory は、Visual Studio への統合を有効にしてインストールされます。dotMemory のインストール中に Visual Studio 統合オプションが選択されます。
型宣言に移動するには
dotMemory では、オブジェクトの型を表示する任意のビューで、必要なタイプ * を右クリックします。
コンテキストメニューで、を選択します。
複数の IDE インスタンスが見つかった場合、dotMemory は、実行中の IDE インスタンスで見つかったすべての型宣言をリストする型宣言に移動するウィンドウを開きます。特定の宣言をクリックして移動します。
タイプ宣言に少なくとも 1 回移動すると、Ctrl+L ショートカットを介して アクションが使用可能になります。
Visual Studio に統合された dotMemory
dotMemory のインストール時に Visual Studio 統合オプションを選択した場合、Visual Studio には dotMemory プロファイラーが組み込まれます。これはメモリプロファイラツールウィンドウ()に表示されます。これは、スタンドアロン版 dotMemory を Visual Studio 内で使用できるようにカスタマイズしたものです。両ツールのユーザーインターフェースはほぼ同じです。収集されたスナップショットのリストは、マシン上のすべての dotMemory インスタンス間で同期されます。

関連ページ:
最初にユーザーインターフェースを確認する
dotMemory での作業は、ある種の犯罪捜査 (dotMemory によるメモリ分析) のようなものだと考えてください。ここでの主なアイデアは、データを収集し (1 つ以上のメモリスナップショット)、多数の容疑者 (問題を引き起こす可能性のある解析対象) を選ぶことです。まず容疑者のリストから始めて、このリストを絞り続けます。有罪判決を下すまで、1 人の容疑者が別の容疑者のところに連れて行ってくれるかもしれません。この分析コンセプト (調査範囲を大きなエンティティから小さなエンティティに絞り...
分析の概要
プロファイリングデータの収集が完了すると、dotMemory は分析の概要ページで新しいタブを開きます。分析の概要ページには、セッション中に収集されたデータに関する情報が表示されます。タイムライン、収集されたスナップショット、スナップショット比較領域、タイムライン:タイムライングラフは、プロファイリングプロセス中にアプリがメモリをどのように消費したかを示しています。タイムラインは、Gen0、Gen1、Gen2 ヒープ、ラージオブジェクトヒープ、ピン留めオブジェクトヒープのインスタントサイズを示...
インスペクションビュー
このビューでは、現在のスナップショットでの状況の概要が簡単に表示されます。最大サイズダイアグラムこのダイアグラムは、「アプリ内でメモリの大部分を占めているオブジェクトは何か」という質問に答えます。特定の種類のオブジェクトによって占有されているメモリの量を示します。ダイアグラム上の項目をクリックすると、それが分析対象となり、タイプビューに移動します。最大保持サイズダイアグラムこのダイアグラムは、「アプリケーションの主要なオブジェクトは何ですか ? 」という質問に答えます。このダイアグラムには、ドミ...
オブジェクトセットの分析
オブジェクトセットは、特定の条件によってグループ化されたオブジェクトの数です。例: Gen 2 のすべてのオブジェクト、他の特定のオブジェクトによって保持されているすべてのオブジェクト、特定の呼び出しによって割り当てられたすべてのオブジェクトなど。オブジェクトセットは調査の主な対象です。オブジェクトセットの分析を支援するために、dotMemory では、このセクションで説明するさまざまなビューでオブジェクトセットを表示できます。タイプ、ドミネーター、同様の保持、インスタンス数、呼び出しツリー、バ...
インスタンスを分析する
特定のオブジェクトインスタンスを分析することは、調査の重要なステップです。dotMemory は、インスタンス分析に特化したビューをいくつか提供します。発信参照、キー保持パス、着信参照、ルートへの最短経路、作成スタックトレース、ビューを選択する:オブジェクトインスタンスのビューを選択するには、ビューリスト内の対応する項目をクリックします。インスタンスにマークを付ける:インスタンスをマークすることは、さまざまなビューやスナップショットで特定のインスタンスをすばやく見つけることができる便利なメカ
メモリ割り当てを分析する
メモリの割り当てビューを使用して、特定の時間間隔での割り当てを分析します。この間隔で割り当てられたオブジェクトと、これらのオブジェクトを割り当てた関数を調べます。ビューでは、プロファイリングが進行中の場合でも割り当てデータを表示できます。メモリスナップショットは必要ありません。データ収集モード:dotMemory は、次の 2 つのモードのいずれかでメモリ割り当てデータを収集できます。サンプリング (デフォルト、Windows のみ) dotMemory は限定された割り当てデータを収集します。...