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

次のツールウィンドウとフィルターは、 ネイティブアプリケーションをプロファイリングする場合、サンプリング、 トレース 、および 1 行ずつ スナップショットでは使用できません: タイムライン ダイアグラム、 イベント、 インターバルフィルター、 スレッドの状態 、フィルター、 イベント、 SQL クエリ、 受信 HTTP リクエスト、 ファイル I/O ツールウィンドウ、およびその他の UI 要素。
タイムライン

ご覧のとおり、タイムラインスナップショットには、メモリ割り当て、ファイル操作、UI フリーズ、その他の ETW イベントに関するデータなど、より多くのデータが含まれています。 さらに、より多くのサブシステムが表示され、サンプリングスナップショットとは異なり、 タイムライン ダイアグラムで任意の時間間隔を選択できます。
分析ワークフロー
dotTrace Viewer でのスナップショット分析では、フィルターを使ってデータを詳細に分析します。 フィルター、 タイムライン/スレッド、 コールスタック などにより、時間、スレッド、特定のメソッド、その他のデータでフィルターを適用できます。 フィルターの結果は、常に特定の条件で選択された時間間隔やポイントイベントのセットです。 例えば、ビューアーに「メインスレッドが実行されているすべての時間間隔を選択 」または「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 で大量のプロファイリングデータを分析すると、画面にスペースがないために不便な場合があります。