Performance Viewer でプロファイリング結果を分析する (非推奨)
パフォーマンスビューアーの廃止
2022.3 がリリースされる前は、サンプリング、トレース、行単位のパフォーマンススナップショットは従来のパフォーマンスビューアーで開く必要がありましたが、タイムラインスナップショットはより最新のタイムラインビューアーで開いていました。 これにより、2 つのビューアーのユーザーインターフェースとスナップショット分析へのアプローチが異なるため、全体的なユーザーエクスペリエンスが悪化しました。
dotTrace 2022.3 では、パフォーマンスビューアーを廃止し、dotTrace ビューアー (以前のタイムラインビューアー) を採用しました。 dotTrace はこれを使用して、すべてのタイプのスナップショットを開きます。 それでも、破棄された dotTrace 2022.3 の Performance Viewer を引き続き使用したい場合は、そのようなオプションがまだあります。

dotTrace Viewer と非推奨の Performance Viewer の主な違いは次のとおりです。
- 分析の開始
パフォーマンス ビューアーでは、分析は スレッドビューまたは 呼び出しツリービューから開始します。 スレッドビューの主な問題は、メソッド呼び出しをマージできないことです。 アプリケーションが同じコード (メソッド) を異なるスレッドで実行するとします。 Performance Viewer では、すべてのスレッドを 1 つずつ開く必要があり、それらが同じコードを実行していることに気付かない可能性があります。

dotTrace ビューアーでは、開始点は 呼び出しツリーです。 Performance Viewer とは異なり、すべてのスレッドからの結合された呼び出しが表示されます。

dotTrace ビューアーの スレッドリストは、特定のスレッドを分析用に選択できるだけでなく、他のフィルターによってデータを表示するフィルターです。 例: 特定のメソッドにスコープした後、 スレッド はメソッド呼び出しが異なるスレッド間でどのように分散されたかを示します。

パフォーマンス ビューアーの 呼び出しツリービューには、 スレッドビューと同じ問題があります。 データはそのまま表示され、ユーザー呼び出しの統合やシステム呼び出しのグループ化はされません。 開始時、ツリーの上部にはシステム呼び出しが集まり、ユーザー呼び出しはその内部に隠れています。

ツリーを調べ始めると、興味のあるユーザーメソッドが見つかります。 問題は、これらが個別の呼び出しインスタンスであることです。

dotTrace ビューアーで見るものと比較してください。上部には統合されたユーザー メソッドの呼び出しが表示され、システム呼び出しは一切ありません。 システム呼び出しは システム呼び出しを折りたたむことで非表示になります。

必要に応じてシステム呼び出しを展開して、パフォーマンス ビューアーと似た表示にできます。 この場合、呼び出しツリーはシステム呼び出しおよびユーザー呼び出しのインスタンスがその場所に表示されたものになります:

全体として、Performance Viewer を使用する際の主な問題は開始点です。 パフォーマンス分析をどこから始めるべきかは明らかではありません。 dotTrace Viewer では、いつでも 呼び出しツリー から始めて、疑わしいメソッドにスコープを設定できます。 高い確率で、 ホットスポット の上位 5 つのメソッドが探しているものです。
- データ解析
dotTrace ビューアーはスナップショット分析に OLAP アプローチを提供しており、各ビューはデータを表示するだけでなく、他のビューのフィルターとしても機能します。 これらのフィルターを適用することで、スナップショットをさまざまな観点でスライスできます。

Performance Viewer には、ほとんど生のコールスタックデータが表示されます。 このアプローチが望ましい場合もありますが、dotTrace ビューアーのフィルターは、さまざまな山括弧からのデータを分析するための信じられないほどの多様性を提供します。
- スレッドの複雑度分析
Performance Viewer は、各スレッドのツリーの複雑度を自動的に計算し、このパラメーターに基づいて スレッド ビューでスレッドを並べ替えます。 この並べ替えにより、どのスレッドが最も多くの作業を行っており、分析の対象となるかをすばやく理解できます。

現在、dotTrace Viewer はこのようなスレッド分析を提供していませんが、将来的にはサポートする予定です。
- サブシステム
OLAP アプローチにより、dotTrace ビューアーのサブシステムも他と同様に完全なフィルターとして機能します。 特定のサブシステムを選択すると、他のビューにフィルターされたデータが表示されます。たとえば 呼び出しツリー は選択したサブシステムに属するメソッドのみコールスタックの該当部分を表示します。

Performance Viewer では、サブシステムは静的エンティティです。 選択したコールツリーのサブシステム間の時間分布のみが表示されます。

- タブと分析状態
Performance Viewer の最も強力な機能の 1 つは、コールツリーの特定の部分を個別のタブで開く機能です。 これは、ツリーの疑わしい部分を調べてから、焦点を失うことなく分析に戻りたい場合に役立ちます。

dotTrace ビューアーでは、分析の状態は、現在有効になっているフィルターのセットによって決まります。 フィルターを追加または削除すると、状態が変わります。 将来の dotTrace バージョンでは、タブを使用して現在の状態を保存する機能を追加します。
パフォーマンスビューアーの概要
アプリケーションの実行が遅すぎる場合は、問題を特定して、実行するアクションを理解するのが難しい場合があります。 アプリケーションをプロファイリングしてパフォーマンススナップショットを取得した後の次のステップでは、スナップショットデータを分析しています。
分析は パフォーマンスビューアー で実行されます。これは、収集されたデータにさまざまな視点を提供するビュー群です。 パフォーマンス スナップショット取得後、ビューアーは自動的に実行されます。
スナップショット分析はほとんど形式化されたプロセスではないため、この章では段階的なガイダンスはありません。 それにもかかわらず、パフォーマンス分析に不可欠なすべての基本操作の概要を説明します。
また、この章には、大量のスナップショットデータを失わないようにするためのヒントが記載されています。