プロファイラー設定の最適化

Visual Studio のパフォーマンス プロファイラーと [診断ツール] ウィンドウには、ツールの全体的なパフォーマンスに影響を与えるさまざまな設定が多数あります。 一部の設定を変更すると、ツールで結果を処理するときに、分析が迅速に実行されたり、待機時間が増加したりする可能性があります。 特定の設定の概要とパフォーマンスに与える影響の概要を以下に示します。

シンボルの設定

デバッガー オプションのシンボル設定 ([デバッグ] > [オプション] > [シンボル] または [ツール] > [オプション] > [デバッグ] > [シンボル]) は、ツールで結果を生成するのにかかる時間に大きく影響します。 シンボル サーバーを有効にするか _NT_SYMBOL_PATH を使用すると、レポートに読み込まれる各モジュールのシンボルがプロファイラーで要求されます。 現時点では、シンボルの自動読み込みの設定に関係なく、プロファイラーでは、常にすべてのシンボルが自動的に読み込まれます。

Symbol loading page

[出力] ウィンドウの [診断ツール] 見出しの下で、シンボル読み込みの進行状況を確認できます。

Symbol loading progress

ダウンロードが完了すると、シンボルがキャッシュされます。これにより、今後の分析が高速化されますが、それでもファイルを読み込んで分析する必要があります。 シンボルの読み込みによって分析が遅くなっている場合は、シンボル サーバーをオフにしてシンボル キャッシュをクリアしてみてください。 代わりに、自分のプロジェクト用にローカルに構築されたシンボルを使用してください。

外部コードの表示

パフォーマンス プロファイラー[診断ツール] ウィンドウ内のツールの多くには、ユーザー コードと外部コードという概念があります。 ユーザー コードは、オープンなソリューションまたはオープンなワークスペースによって作成されたコードです。 外部コードはそれ以外のすべてです。 [外部コードの表示] 設定を無効のままにするか [マイコードのみ表示] を有効にすることで、ツールで外部コードを単一の第 1 レベルのフレームに集約でき、結果を表示するために必要な処理量を大幅に減らすことができます。 これにより、ユーザーは、処理されるデータを最小限に抑えながら、どの外部コードの呼び出しによって処理が遅くなっているかを確認できます。 可能であれば [外部コードの表示] を無効のままにし、分析対象の diagsession に対してソリューションまたはワークスペースをご用意しておりします。

トレース実行時間

プロファイルの実行時間を短くすると、データの量が少なくなり、分析が迅速に行われます。 通常は、トレースを 5 分以内のパフォーマンス データに制限することをお勧めします。 CPU 使用率ツールなどの一部のツールでは、ツールの実行中にデータ収集を一時停止して、分析するシナリオに対して収集されるデータの量を制限できます。

サンプリング頻度

CPU 使用率ツールや NET オブジェクト割り当てツールなどの特定のツールでは、サンプリング頻度を調整できます。 このサンプリング頻度を高くすると、より正確に測定できますが、生成されるデータの量が増加します。 通常、特定の問題を調査する場合を除き、この設定は既定のレートのままにしておくことが最善です。

Diag Hub Properties Page

Diag Hub Properties Page

コレクション フォルダーを設定する

Visual Studio プロファイラーは、コレクション スクラッチ ディレクトリを使用して、パフォーマンス トレースを保存または破棄カード前に格納します。 既定では、プロファイラーは一時ディレクトリを使用します。 ただし、別のスクラッチ ディレクトリを指定するには、最初に診断ツール ウィンドウを開き ([デバッグ]>[ウィンドウ]>[診断ツールの表示] )、次に [ツールを選択>設定 >一般 >[スクラッチ ディレクトリ] の順にパンを買います。

Screenshot of profiler scratch directory.