次の方法で共有


方法: コマンド ラインを使用してスタンドアロンのネイティブ アプリケーションにプロファイラーをアタッチし、同時実行データを収集する

ここでは、Visual Studio プロファイリング ツールのコマンド ライン ツールを使用して、実行中のスタンドアロンのネイティブ (C/C++) アプリケーションにプロファイラーをアタッチし、プロセス データおよびスレッド競合データを収集する方法について説明します。

[!メモ]

プロファイリング ツールのコマンド ライン ツールは、Visual Studio インストール ディレクトリの \Team Tools\Performance Tools サブディレクトリにあります。64 ビット コンピューター上では、64 ビット バージョンのツールと 32 ビット バージョンのツールの両方を使用できます。プロファイラー コマンド ライン ツールを使用するには、コマンド プロンプト ウィンドウの PATH 環境変数にツールのパスを追加するか、コマンド自体にそれを追加します。詳細については、「プロファイル ツールのコマンド ライン ツールへのパスの指定」を参照してください。

プロファイラーをアプリケーションにアタッチしている間はデータ収集を一時停止し、完了後に再開できます。プロファイル セッションを終了するには、アプリケーションへのプロファイラーのアタッチを解除し、プロファイラーを明示的に終了する必要があります。

実行中のネイティブ アプリケーションへのプロファイラーのアタッチ

実行中のネイティブ アプリケーションにプロファイラーをアタッチするには

  1. コマンド プロンプトに次のコマンドを入力します。

    VSPerfCmd/start:concurrency

    /start:concurrencyオプションと共に、次の表の任意のオプションを指定できます。

    オプション

    Description

    /user:[Domain\]Username

    プロファイラーへのアクセスを許可するアカウントのオプションのドメインとユーザー名を指定します。

    /crosssession

    他のログオン セッションにおけるプロセスのプロファイリングを有効にします。

    /wincounter:WinCounterPath

    プロファイリング実行中に収集する Windows パフォーマンス カウンターを指定します。

    /automark:Interval

    /wincounter と共にのみ使用します。Windows パフォーマンス カウンター収集イベントの間隔をミリ秒単位で指定します。既定値は 500 です。

    /events:Config

    プロファイリング実行中に収集する ETW (Event Tracing for Windows) イベントを指定します。ETW イベントは独立した (.etl) ファイルに収集されます。

  2. 次のコマンドを入力して、対象アプリケーションにプロファイラーをアタッチします。

    VSPerfCmd /attach:{PID|ProcName}

    PID には、対象アプリケーションのプロセス ID を指定します。Windows タスク マネージャーで、実行中のすべてのプロセスのプロセス ID を参照できます。

データ収集の制御

対象アプリケーションの実行中は、VSPerfCmd.exe のオプションを使用してファイルへのデータ書き込みを開始および停止することにより、データ収集を制御できます。データ収集を制御することにより、アプリケーションの起動や終了など、プログラム実行の特定部分のデータを収集できます。

データ収集を開始および停止するには

  • 次の表に示すオプションの組み合わせにより、データ収集を開始および停止します。個別のコマンド ラインで各オプションを指定します。データ収集のオンとオフは複数回切り替えることができます。

    オプション

    Description

    /globalon /globaloff

    すべてのプロセスのデータ収集を開始 (/globalon) または停止 (/globaloff) します。

    /processon:PID/processoff:PID

    プロセス ID (PID) で指定されたプロセスのデータ収集を開始 (/processon) または停止 (/processoff) します。

    /attach:{PID|ProcName} /detach[:{PID|ProcName}]

    /attach は、プロセス ID (PID) またはプロセス名 (ProcName) で指定したプロセスのデータ収集を開始します。/detach は、指定されたプロセスのデータ収集を停止します。プロセスが指定されていない場合は、すべてのプロセスのデータ収集を停止します。

プロファイル セッションの終了

プロファイル セッションを終了するには、プロファイラーがデータ収集を停止している必要があります。アプリケーションを終了するか VSPerfCmd /detach オプションを呼び出すことによって、サンプリング メソッドを使用してプロファイリングが実行されているアプリケーションからのデータ収集を停止できます。次に、VSPerfCmd /shutdown オプションを呼び出して、プロファイラーをオフにし、プロファイル データ ファイルを閉じます。

プロファイル セッションを終了するには

  1. 対象のアプリケーションを終了するか次のコマンドを入力し、アプリケーションからプロファイラーをデタッチします。

    VSPerfCmd /detach

  2. 次のコマンドを入力してプロファイラーを終了します。

    VSPerfCmd /shutdown