Share via


チュートリアル: vcperf および Windows パフォーマンス アナライザー

C++ Build Insights ツールは、Visual Studio 2019 以降で使用できます。 このバージョンのドキュメントを表示するには、この記事の Visual Studio の [バージョン] セレクター コントロールを Visual Studio 2019 以降に設定してください。 このページの目次の一番上にあります。

このチュートリアルでは、vcperf.exe を使用して C++ ビルドのトレースを収集する方法について説明します。 また、Windows パフォーマンス アナライザーでこのトレースを表示する方法についても説明します。

手順 1: Windows パフォーマンス アナライザーをインストールして構成する

WPA は、Windows アセスメント & デプロイメント キット (ADK) で使用できるトレース ビューアーです。 これは、Visual Studio インストーラーを使用してインストールできるコンポーネントの一部ではない、独立したユーティリティです。

C++ ビルド インサイトをサポートする WPA のバージョンは、Windows ADK 番号付き 10.1.19041.0 以降のバージョンでのみ使用できます。

WPA をダウンロードしてインストールするには

注: Windows パフォーマンス アナライザーをインストールする場合は、Windows 8 以降が必要です。

  1. Windows ADK のダウンロード ページを参照してください。

  2. Windows ADK の最新バージョンをダウンロードしてインストールします。

  3. インストールする機能の入力を求められたら、[Windows Performance Toolkit] を選択します。 必要に応じて他の機能を選択することもできますが、WPA をインストールする必要はありません。

    The Windows Performance Analyzer installer's feature selection screen.

WPA を構成するには

WPA で C++ Build Insights トレースを表示するには、特別なアドインが必要です。 次の手順に従ってインストールしてください。

  1. 次のコンポーネントのいずれかをダウンロードして、アドインを入手します。 両方を入手する必要はありません。 最も便利なものを選択します。

  2. perf_msvcbuildinsights.dll ファイルを WPA インストール ディレクトリにコピーします。

    1. Visual Studio 2019 バージョン 16.6 以降では、このファイルは C:\Program Files (x86)\Microsoft Visual Studio\{Year}\{Edition}\VC\Tools\MSVC\{Version}\bin\Host{Architecture}\{Architecture} にあります。
    2. C++ Build Insights NuGet パッケージでは、このファイルは wpa\{Architecture} にあります。
    3. 上記のパスでは、次のように中かっこで囲まれた変数を置き換えます。
      1. {Year} は、2019 や 2022 など、Visual Studio 製品年度です。
      2. {Edition} は、Community、Professional、Enterprise などの Visual Studio のエディションです。
      3. {Version} は MSVC のバージョンです。 入手できる中で最新のものを選択します。
      4. {Architecture}: 64 ビット バージョンの Windows を使用している場合は、x64 を選択します。 それ以外の場合は、x86 を選択します。
    4. WPA のインストール ディレクトリは、通常は C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit です。
  3. WPA のインストール ディレクトリにある perfcore.ini ファイルを開き、perf_msvcbuildinsights.dll のエントリを追加します。

手順 2: vcperf.exe を使用してビルドをトレースする

C++ Build Insights データを表示するには、まず、次の手順に従ってトレース ファイルに収集します。

  1. 管理者モードで、VS の x64 または x86 Native Tools コマンド プロンプトを開きます。 ([スタート] メニュー項目を右クリックして、[その他]>[管理者として実行] を選択します。)

    1. 64 ビット版の Windows を使用している場合は x64 を選択します。 それ以外の場合は x86 を選択します。
  2. コマンド プロンプト ウィンドウで、次のコマンドを入力します。

    vcperf.exe /start SessionName

    SessionName のセッション名を選択し、覚えておきます。

  3. 通常どおりにプロジェクトをビルドします。 ビルドに同じコマンド プロンプト ウィンドウを使用する必要はありません。

  4. コマンド プロンプト ウィンドウで、次のコマンドを入力します。

    vcperf.exe /stop SessionNametraceFile.etl

    以前に SessionName に選択したものと同じセッション名を使用します。 traceFile.etl トレース ファイルに適切な名前を選択します。

開発者コマンド プロンプト ウィンドウでの一般的な vcperf.exe コマンド シーケンスは次のようになります。

Screenshot of a command window showing vcperf.exe commands and results.

vcperf.exe に関する重要な注意事項

  • vcperf.exe トレースを開始または停止するには、管理者特権が必要です。 [管理者として実行] を使用して開いた開発者コマンド プロンプト ウィンドウを使用します。

  • マシン上で実行できるトレース セッションは一度に 1 つだけです。

  • トレースの開始に使用したセッション名を忘れないようにしてください。 名前がわからない場合、実行中のセッションを停止することが困難になる場合があります。

  • cl.exelink.exe と同様に、コマンドライン ユーティリティ vcperf.exe は MSVC インストールに含まれています。 このコンポーネントを取得するために追加の手順は必要ありません。

  • vcperf.exe を使用すると、システムで実行されているすべての MSVC ツールに関する情報を収集できます。 そのため、トレースの収集に使用したものと同じコマンド プロンプトからビルドを開始する必要はありません。 別のコマンド プロンプトから、または Visual Studio からでもプロジェクトをビルドできます。

vcperf.exe はオープンソースです

独自のバージョンの vcperf.exe をビルドして実行する場合は、vcperf GitHub リポジトリから複製しても構いません。

手順 3: Windows パフォーマンス アナライザーでトレースを表示する

WPA を起動し、先ほど収集したトレースを開きます。 WPA ではこれが C++ Build Insights トレースとして認識され、左側の Graph エクスプローラー パネルに次のビューが表示されます。

  • ビルド エクスプローラー
  • ファイル
  • 関数
  • テンプレートのインスタンス化

これらのビューが表示されない場合は、手順 1 の説明に従って、WPA が正しく構成されていることを再確認します。 次に示すように、ビューを右側の空の分析ウィンドウにドラッグすることで、ビルド データを表示できます。

View of a C++ Build Insights trace in Windows Performance Analyzer.

その他のビューは、Graph エクスプローラー パネルで使用できます。 表示されている情報に関心がある場合は、それらを [分析] ウィンドウにドラッグします。 便利なものとして、ビルド全体の CPU 使用率を示す CPU (サンプリングされた) ビューがあります。

詳細情報

チュートリアル: Windows パフォーマンス アナライザーの基本
ビルド トレースの分析に役立つ一般的な WPA 操作について説明します。

リファレンス: vcperf コマンド
vcperf.exe コマンド リファレンスには、使用できるすべてのコマンド オプションが掲載されています。

リファレンス: Windows パフォーマンス アナライザー ビュー
WPA の C++ Build Insights ビューの詳細については、この記事を参照してください。

Windows Performance Analyzer
WPA の公式ドキュメント サイト。