リリース ビルドまたはデバッグ ビルドでプロファイリング ツールを実行する (C#、Visual Basic、C++、F#)
Visual Studio には、パフォーマンス測定ツールとプロファイリング ツールが用意されています。 CPU 使用率やメモリ使用量などの一部のツールは、リリース ビルドまたはアプリのデバッグ中 (デバッグ ビルド) で実行できます。 診断ツール ウィンドウに表示されるツールは、デバッグ セッション中にのみ実行。 パフォーマンス プロファイラーに表示されるツール デバッガーなしで実行されます。通常はリリース ビルドで実行され、(事後分析用に) データの停止と収集を選択した後に結果を分析します。
パフォーマンス プロファイラーとデバッガー統合診断ツールは、さまざまな情報とエクスペリエンスを提供します。 診断ツールの使用中、デバッガーには変数値が表示され、ブレークポイントを使用できます。
パフォーマンス プロファイラーのリリース ビルドのパフォーマンス番号は、最も正確で正確です。 これらのツールを使用すると、エンド ユーザー エクスペリエンスに近い結果が得られます。 通常、これはプロファイリング ツールを使用するための推奨される方法です。 ただし、デバッグ ビルドでデバッガーを使用すると、特にブレークポイントやコード ステップ実行などのデバッガー機能を使用する場合に、パフォーマンスの問題を絞り込むのに役立つ場合があります。
リリース ビルドまたはデバッグ ビルドでプロファイリング ツールを使用するかを決定するには、次の点を考慮してください。
- リリース ビルドでは、関数呼び出しと定数のインライン化、未使用のコード パスの排除、デバッガーで使用できない方法での変数の格納などの最適化が提供されます。 デバッグ ビルドにはこれらの最適化がないため、デバッグ ビルドのパフォーマンス数値の精度は低くなります。
- リリース ビルドとデバッグ ビルドの違いに加えて、デバッガー自体は、例外やモジュールの読み込みイベントをインターセプトするなどの必要なデバッガー操作を実行するため、パフォーマンス時間を変更します。
- CPU を集中的に使用する呼び出しによって発生するパフォーマンスの問題では、リリース ビルドとデバッグ ビルドの間に大きくパフォーマンスの違いがある可能性があります。 リリース ビルドに CPU パフォーマンスの問題が存在するかどうかを確認します。
- ファイル I/O やネットワークの応答性の問題などの外部パフォーマンスの問題は、リリース ビルドとデバッグ ビルドでそれほど大きな違いは見られません。
- デバッグ ビルドでのみ問題が発生する場合は、おそらくリリース ビルドでツールを実行する必要はありません。
- .NET オブジェクト割り当てツールなどの一部のツールは、パフォーマンス プロファイラーでのみ使用できます (デバッガー以外のシナリオ)。
リリース ビルドでプロファイリング データを収集する
リリース ビルドでパフォーマンス データを収集するには、パフォーマンス プロファイラー ツールを実行します。
Visual Studio でプロジェクトを開いた状態で、ソリューション構成を Releaseに設定し、展開ターゲットとして [ローカル Windows デバッガー ( またはローカル コンピューター ) 選択します。
デバッグ>パフォーマンス プロファイラーを選択するか、Alt キーを押して+F2を押します。
診断ツールの起動ページで、実行する 1 つ以上のツールを選択します。 プロジェクトの種類、オペレーティング システム、およびプログラミング言語に適用できるツールのみが表示されます。 [すべてのツール 表示] を選択すると、この診断セッションで無効になっているツールも表示されます。
診断セッションを始めるには、開始を選択します。
セッションの実行中、一部のツールでは診断ツール ページにリアルタイム データのグラフが表示され、データ収集を一時停止および再開するためのオプションが表示される場合があります。
を収集する
を収集する
診断セッションを終了するには、[収集停止] を選択します。
分析されたデータは、レポート ページに表示されます。
リリース ビルドで使用できるツールとレポートの分析方法の詳細については、次を参照してください。
- CPU プロファイリング を使用してパフォーマンスを分析する
- メモリ使用量の を分析する
- .NET コード のメモリ使用量を分析する
- インストルメンテーション データ を分析する
- .NET カウンターの分析
- .NET 非同期コード のパフォーマンスを分析する
- データベースパフォーマンス を分析する
- イベント を表示する
- GPU 使用率の分析
手記
以前の設定を使用して自動的に実行するには、リランチを使用して起動ページをスキップし、Alt + F2 を押すか、[デバッグ ] > [パフォーマンスプロファイラー] をクリックしてください。
(省略可能)レポートを保存し、後で診断ツールの起動ページの [最近開いたセッション] 一覧 から開くことができます。
デバッグ中にプロファイリング データを収集する
Visual Studio でデバッグを開始するときに、[デバッグ] >[デバッグの開始]を選択するか、F5 押すと、既定で [診断ツールの] ウィンドウが表示されます。 手動で開くには、[デバッグ>Windows>Show Diagnostic Tools] を選択します。 診断ツールの ウィンドウには、イベント、プロセス メモリ、CPU 使用率、および .NET カウンターに関する情報が表示されます。
- ツールバーの [設定] アイコンを使用して、CPU 使用率、メモリ使用量、または .NET カウンターを表示するか選択します。
Visual Studio でデバッグを開始するときに、[デバッグ] >[デバッグの開始]を選択するか、F5 押すと、既定で [診断ツールの] ウィンドウが表示されます。 手動で開くには、[デバッグ]>[Windows]>[診断ツールの表示] を選択します。 診断ツールの ウィンドウには、イベント、プロセス メモリ、CPU 使用率に関する情報が表示されます。
- ツール バーの [設定] アイコンを使用して、CPU 使用率、メモリ使用量、または UI 分析 表示するかどうかを選択します。
[設定] ドロップダウン リストで [設定] を選択して、診断ツールのプロパティ ページ を開き、その他のオプションを表示します。
Visual Studio Enterprise を実行している場合は、[ツール ] -> [オプション>] -> [IntelliTrace>] -> IntelliTraceを移動して、有効または無効にすることができます。
デバッグを停止すると、診断セッションが終了します。
デバッグ中に使用できるツールの詳細については、次を参照してください。
- CPU 使用率の を分析してアプリケーションのパフォーマンスを測定する
- Visual Studio でメモリ使用量を測定する
- .NET カウンターの分析
[イベント] タブ
デバッグ セッション中に、[診断ツール] ウィンドウの [イベント] タブに、発生した診断イベントが一覧表示されます。 カテゴリ プレフィックス ブレークポイント、ファイルなどです。このプレフィックスを使用すると、カテゴリの一覧をすばやくスキャンしたり、気にしないカテゴリをスキップしたりできます。
フィルター ドロップダウン リストを使用して、特定のカテゴリのイベントを選択またはクリアして、イベントの表示/非表示をフィルター処理します。
の のスクリーンショット。
診断イベント フィルター診断イベント フィルタースクリーンショット
検索ボックスを使用して、イベント リスト内の特定の文字列を検索します。 次に示すのは、3 つのイベントに一致したモデル ファイル名を検索した結果です。
検索ボックスを使用して、イベント リスト内の特定の文字列を検索します。 次に、4 つのイベントに一致した文字列 名前 を検索した結果を示します。
診断イベント検索診断イベント検索スクリーンショット
詳細については、「診断ツール」ウィンドウ の「イベント」タブの検索とフィルター処理を参照してください。
コマンド ラインからプロファイル データを収集する
コマンド ラインからパフォーマンス データを測定するには、Visual Studio またはリモート ツールに含まれる VSDiagnostics.exeを使用できます。 これは、Visual Studio がインストールされていないシステムでパフォーマンス トレースをキャプチャしたり、パフォーマンス トレースのコレクションをスクリプト化したりする場合に便利です。 詳細な手順については、コマンド ライン からアプリケーションのパフォーマンスを測定するを参照してください。