プロファイリング結果を分析する
アプリケーションの実行が遅すぎると、問題を特定して実行するアクションを理解することが困難になる可能性があります。 アプリケーションのプロファイリングとパフォーマンススナップショットの取得後の次のステップは、 スナップショットを開いてデータを分析することです。
通常、パフォーマンス分析の最終的なゴールは、パフォーマンスの問題を引き起こす特定の方法を特定することです。 このタスクの実行を支援するために、 dotTrace プロファイラーウィンドウでは、 呼び出しツリーと ホットスポットのビューを提供します。

ホットスポット
ホットスポット は、選択したすべてのスレッドのメソッドのリストを実行時間順に表示します。 ホットスポット を使用して、 呼び出しツリー の特定の部分で最も遅いメソッドを特定します。
トップメソッド は、dotTrace スタンドアロンの メソッドとサブシステム ビューに対応します。 トップメソッド の操作方法に関するすべてのトピックについては、 dotTrace のドキュメントを参照してください。
呼び出しツリー
呼び出しツリー はメソッド実行パスを示します。 ツリー内の各メソッドノードは、特定のスレッドによって実行されるトップレベルのメソッドを表します。 メソッドノードには、呼び出されたメソッドとプロファイリング時に収集されたメトリクスがリストされます。
呼び出しツリーを フレームグラフ モードに切り替えることもできます。グラフ上の各バーは呼び出しの合計時間を表します。 これにより、最も遅い呼び出しチェーンをすばやく見つけることができます。
呼び出しツリー は、スタンドアロン dotTrace バージョンの 呼び出しツリー ビューに対応します。 呼び出しツリー の操作方法に関するすべてのトピックについては、 dotTrace のドキュメントを参照してください。
タイムラインスナップショットのデータをフィルタリングする
タイムラインスナップショットには、呼び出しが時間内でどのように配布済みかに関する追加データがあります。 これにより、より複雑な時間間隔分析が可能になります。例えば、UI フリーズが発生した間隔だけを残したり、GC でブロックされていた時間間隔だけを残したりできます。 Timeline フィルターの詳細については、 dotTrace ドキュメントを参照してください。
開いているスナップショットに現在適用されているフィルターは、 dotTrace プロファイラー ウィンドウの上部に表示されます。 すべてのフィルターを一度に削除するには、 リセット をクリックします。
イベントでフィルターを適用する
dotTrace は、ガベージコレクションとファイル操作の間隔、メモリ割り当てデータ、発生した例外に関するデータなど、さまざまなアプリケーションデータを収集します。 イベント のリストからイベントを選択することは、さらなる分析の良い開始点になる可能性があります。 例: アプリケーションにメモリを割り当てるメソッドを確認するには、 .NET メモリ割り当て フィルターをオンにします。 イベントの詳細については、 dotTrace のドキュメントを参照してください。
間隔フィルターを適用する (UI フリーズ、受信 HTTP リクエスト、タスク)
間隔フィルターの考え方は、「特定のイベントが発生するすべての時間間隔を選択する」ことです。 例: UI フリーズの原因を分析する場合、 UI フリーズ をオンにすることで、フリーズが発生した時間間隔のみを残すことができます。 イベント と間隔フィルターの違いは、複数の間隔フィルターを一度に適用できることです (間隔フィルターによって選択された時間間隔は、1 つのスレッド内で重複する場合があります)。 間隔フィルターの詳細については、 dotTrace ドキュメントを参照してください。
スレッドでフィルターを適用する
デフォルトでは、 呼び出しツリー はすべてのスレッドからのすべてのメソッド呼び出しを含む集約ツリー スレッド: すべて を表示します。 フィルターを適用するには、リストからスレッドを選択します。 この後、 呼び出しツリー (および トップメソッド も同様)は選択されたスレッドからのメソッドのみを表示します。
スレッドの状態でフィルターを適用する
スレッドの状態 フィルターの考え方は「スレッドが指定された状態、つまり実行中または待機中にあったすべての時間間隔を選択する」ことです。 フィルターを適用するには、 スレッドの状態 で状態を選択します。
メソッドでフィルターを適用する
時々、呼び出しツリーの特定のメソッドに集中したいかもしれません。 これを行うには、 呼び出しツリー または トップメソッド でメソッドを選択し、コンテキストメニューで すべてのメソッド出現箇所をマージする を選択します。 その後、選択されたメソッドはすべての出現箇所を含む 呼び出しツリー のルートノードになります。 他のすべての呼び出しは隠されています。
サブシステムでフィルターを適用する
サブシステム フィルターを使用すると、特定の呼び出しツリー内の時間がさまざまなコンポーネント (ユーザーコード、システムコード、WPF、LINQ、ファイル I/O、コレクションなど) にどのように分散されているかを迅速に評価できます。 フィルターを適用するには、 サブシステム でサブシステムを選択します。 サブシステムの詳細については、 次のトピックを参照してください。
ソースコードからスナップショットに移動する
スナップショットからコードに移動できるだけでなく、コードからスナップショットに移動することもできることに注意してください。 どこでも検索 コマンド Ctrl+N, G を使用すると、コード内だけでなく、開いているパフォーマンススナップショット内でもメソッドを検索できます。 この目的のために、結果として得られる候補リストには スナップショット カテゴリが含まれています。 このカテゴリでメソッドを選択すると、Rider は dotTrace プロファイラーウィンドウ内の対応するメソッドの場所に移動します。

Navigate To機能はパフォーマンススナップショットへのナビゲーションもサポートしています。エディターでメソッドにキャレットを置き、 Ctrl+Shift+G を押した後、 パフォーマンススナップショットで表示 を選択します。
スナップショットを操作する
収集されたすべてのスナップショットは、 dotTrace プロファイラーウィンドウの すべてのスナップショット タブに表示されます。 ここでは、分析のためにスナップショットを開いたり、削除したり、他のコンピューターにエクスポートするために .dtp(.dtt)形式で保存したりできます。
スナップショットを開く
(オプション)現在開いているソリューションのスナップショットだけに興味がある場合は、 すべてのスナップショット タブで
をクリックします。
すべてのスナップショット タブで、目的のスナップショットを選択します。
次のいずれかを実行します:
スナップショットをダブルクリックします。
コンテキストメニューで、 オープン を選択します。
これにより、 dotTrace プロファイラー ウィンドウの別のタブでスナップショットが開きます。
スナップショットをエクスポートする
(オプション)現在開いているソリューションのスナップショットだけに興味がある場合は、 すべてのスナップショット タブで
をクリックします。
すべてのスナップショット タブで、目的のスナップショットを選択します。
コンテキストメニューで、 エクスポート を選択します。
パスとファイル名を指定して OK をクリックします。
エクスポートされたスナップショットを開く
すべてのスナップショット タブで、
をクリックします。スナップショットへのパスを指定して、 OK をクリックします。 スナップショットが すべてのスナップショット リストに追加されます。