dotTrace ビューアーの概念
dotTrace ビューアーは、プロファイリングデータをフィルター処理して視覚化できるフィルターとダイアグラムのセットです。
プロファイリングタイプとユーザーインターフェース
dotTrace ビューアーのユーザーインターフェースは、現在分析しているスナップショットの種類によって異なります。サンプリング、トレース、および line-by-line スナップショットでは、タイムラインスナップショットよりもデータが少なくなります。
以下のイメージは、dotTrace Viewer で開いた同じアプリケーションのサンプリングとタイムラインスナップショットを示しています。
サンプリング

次のツールウィンドウとフィルターは、サンプリング、トレース、および line-by-line スナップショットでは使用できません: タイムラインダイアグラム、イベント、インターバルフィルター、スレッドの状態、フィルター、イベント、SQL クエリ、受信 HTTP リクエスト、ファイル I/O ツールウィンドウ、およびその他の UI 要素。
タイムライン

ご覧のとおり、タイムラインスナップショットには、メモリ割り当て、ファイル操作、UI フリーズ、その他の ETW イベントに関するデータなど、より多くのデータが含まれています。さらに、より多くのサブシステムが表示され、サンプリングスナップショットとは異なり、タイムラインダイアグラムで任意の時間間隔を選択できます。
分析ワークフロー
dotTrace ビューアーのスナップショット分析では、フィルターを使用してデータを細かく分割します。フィルター、タイムライン / スレッド、呼び出しスタックなどでは、時間、スレッド、特定のメソッド、その他のデータでフィルターを適用できます。フィルターの作業の結果は常に、特定の条件によって選択された一連の時間間隔またはポイントイベントです。たとえば、ビューアーに「メインスレッドが実行されているすべての時間間隔を選択する」または「MyMethod() が機能するすべての時間間隔を選択する」ように要求できます。
ここでは、dotTrace ビューアーでデータ分析を成功させるために知っておく必要があるいくつかの概念について説明します。
- すべてがフィルターです
dotTrace ビューアーの各 UI コントロールは、特定のフィルターを設定するだけでなく、フィルター処理された情報のチャンクを表示するためにも使用されます。
例: スレッドの状態フィルターは、スレッド状態でフィルターを適用できるだけでなく、選択したスレッドが特定の状態にあった時間も表示します。
現在のすべてのフィルターは、ビューアーのメインバーに表示されます。フィルターを削除したり、元に戻すボタンとやり直しボタンを使用してフィルター履歴を移動したりできます。

- フィルターは連鎖しています
フィルターはチェーンでグループ化できます。複雑なフィルターの組み合わせにより、アプリのあらゆる側面を分析することができます。
例: メインスレッドが実行されているすべての時間間隔を選択するフィルターとガベージコレクションをブロックするすべての時間間隔を選択するフィルターを組み合わせると、結果のフィルターガベージコレクション中にメインスレッドが実行されているすべての時間間隔を選択するが得られます。つまり、このフィルターの組み合わせは、メインスレッドが GC を切り替えた時間間隔のみを残します。呼び出しスタック | ホットスポットフィルターは、コレクションを切り替えた正確なメソッドを表示します。
さまざまなタブでスナップショットを分析する
同じスナップショットに対して、一度に複数の分析を実行できます。1 つのタブで 1 つのフィルターセットを保持し、別のタブで異なるフィルターを使用して同じスナップショットを調査できます。

フィルターなしでスナップショットを新しいタブで開くには、タブヘッダーの
をクリックします。
現在の分析を新しいタブにコピーするには、Ctrl+T の組み合わせまたはクローンタブコンテキストメニュー項目を使用します。
Visual Studio に統合された dotTrace ビューアー
dotTrace のインストール時に Visual Studio 統合オプションを選択した場合、Visual Studio には dotTrace プロファイラーが組み込まれます。これはパフォーマンスプロファイラツールウィンドウ()に表示されます。統合された dotTrace は、スタンドアロンの dotTrace ビューアーを Visual Studio 内で使用できるようにカスタマイズしたものです。両ツールのユーザーインターフェースはほぼ同じです。収集されたスナップショットのリストは、マシン上のすべての dotTrace インスタンス間で同期されます。

統合ビューアーを使用する場合の長所と欠点:
よりシームレスな体験。Visual Studio で分析が行われるため、ソースコードとプロファイラを切り替える必要はありません。
コールツリーからソースコードへのナビゲーションとその逆。
呼び出しツリーの特定のメソッド(プロファイリング結果内)からその宣言まで、およびコード内のメソッド宣言から呼び出しツリーでの出現まで移動できます。
Visual Studio で大量のプロファイリングデータを分析すると、画面にスペースがないために不便な場合があります。
関連ページ:
プロファイリング結果の分析
プロファイリングスナップショットを取得した後の次のステップは、dotTrace ビューアーで分析することです。dotTrace は JetBrains Rider および Visual Studio でも利用可能です。これらの統合ビューアーはどちらもスタンドアロンの dotTrace ビューアーとほぼ同じですが、いくつかの制限があります。JetBrains Rider のビューアーの詳細については、Rider のドキュメントを参照してください。Visual Studio のビューアーの詳細につい...
タイムライン
タイムラインウィンドウは、分析に関心のあるスレッドと時間間隔を視覚化して選択するために使用されます。ウィンドウは次のセクションで構成されています。プロセスの概要 – アプリケーションのアクティビティとイベントの概要ダイアグラム。スレッドダイアグラム – スレッドアクティビティダイアグラム。プロセスの概要:プロセスの概要ダイアグラムは、プロファイルされたアプリケーションに関連するアプリケーションアクティビティと意味のあるイベントを視覚化します。このダイアグラムを使用して、CPU 負荷が高い間隔、長い...