Share via


Visual Studio で .NET アプリケーションをインストルメント化する (C#、C++、Visual Basic、F#)

Visual Studio 2022 バージョン 17.5 のリリースでは、新しい動的インストルメンテーション ツールを使用できます。 このツールでは、関数が呼び出された正確な回数が示され、以前のバージョンのインストルメンテーション ツールよりも高速です。 このツールでは、PDB を必要とすることなく .NET Core インストルメンテーションがサポートされます。 Visual Studio 2022 バージョン 17.6 Preview 2 以降、このツールでは C/C++ もサポートされています。

このツールは CPU 使用率ツールに似ていますが、CPU 使用率ではなく実時間に基づいている点が異なります。 インストルメンテーション ツールの効果的な使用方法の詳細については、「新しいインストルメンテーション ツールの概要」と「新しいインストルメンテーション ツールを使用して Visual Studio のパフォーマンスを向上させる」の記事をご覧ください。

アプリケーションをインストルメント化する

  1. Alt+F2 キー (または [デバッグ] > [パフォーマンス プロファイラー]) を選択して、Visual Studio でパフォーマンス プロファイラーを開きます。

  2. [インストルメンテーション] チェック ボックスをオンにします。

    選択されたインストルメンテーション ツールを示すスクリーンショット。

    プロファイラーを起動する前に [コレクションを一時停止した状態で開始] オプションを有効にした場合、診断セッション ビューで [記録] ボタンを選択するまでデータは収集されません。

    Note

    ツールを選択できない場合は、他のすべてのツールのチェック ボックスをオフにします。これは一部のツールは単独で実行される必要があるためです。 複数のツールを一緒に実行する方法の詳細については、「複数のプロファイラー ツールの同時使用」を参照してください。

    それでもツールを使用できない場合は、プロジェクトが前述の要件を満たしていることを確認します。 プロジェクトが最も正確なデータを取得するためのリリース モードになっていることを確認します。

  3. [開始] ボタンを選択してツールを実行します。

  4. インストルメント化するプログラムの項目を選択します。

    [インストルメント化する項目の選択] ダイアログを示すスクリーンショット。

  5. [OK] を選択します。

  6. ツールの実行が開始されたら、アプリ内でプロファイリングするシナリオを検討します。 次に、 [収集の停止] を選択するかアプリを閉じてデータを確認します。

インストルメンテーション レポートを分析する

プロファイル データが Visual Studio に表示されます。

.NET インストルメンテーション データを示すスクリーンショット。

インストルメンテーション データ ビューには、実行時間順に並べ替えられた関数の一覧が表示され、実行時間が最も長い関数が [上位の関数] の一番上に示されます。 [ホット パス] セクションには、ほとんどの時間を使っている関数の呼び出し履歴が表示されます。 これらの一覧は、パフォーマンス上のボトルネックが発生している関数を見つけるのに役立ちます。

関心のある関数をクリックすると、より詳細なビューが表示されます。

使用可能な情報は CPU 使用率ツールと似ていますが、CPU 使用率ではなく、実時間と呼び出し数に基づいている点が異なります。 これは、CPU 使用率ツールとは異なり、ロックの待機に費やされた時間などのブロックされた時間がインストルメンテーション トレースに表示されることを意味します。 ビューの詳細については、「CPU プロファイルを使用したパフォーマンスの分析」を参照してください。