方法: コマンド ラインを使用してスタンドアロンのネイティブ アプリケーションにプロファイラーをアタッチし、同時実行データを収集する
ここでは、Visual Studio プロファイリング ツールのコマンド ライン ツールを使用して、実行中のスタンドアロンのネイティブ (C/C++) アプリケーションにプロファイラーをアタッチし、プロセス データおよびスレッド競合データを収集する方法について説明します。
[!メモ]
プロファイリング ツールのコマンド ライン ツールは、Visual Studio インストール ディレクトリの \Team Tools\Performance Tools サブディレクトリにあります。64 ビット コンピューター上では、64 ビット バージョンのツールと 32 ビット バージョンのツールの両方を使用できます。プロファイラー コマンド ライン ツールを使用するには、コマンド プロンプト ウィンドウの PATH 環境変数にツールのパスを追加するか、コマンド自体にそれを追加します。詳細については、「プロファイル ツールのコマンド ライン ツールへのパスの指定」を参照してください。
プロファイラーをアプリケーションにアタッチしている間はデータ収集を一時停止し、完了後に再開できます。プロファイル セッションを終了するには、アプリケーションへのプロファイラーのアタッチを解除し、プロファイラーを明示的に終了する必要があります。
実行中のネイティブ アプリケーションへのプロファイラーのアタッチ
実行中のネイティブ アプリケーションにプロファイラーをアタッチするには
コマンド プロンプトに次のコマンドを入力します。
VSPerfCmd/start:concurrency
/start:concurrencyオプションと共に、次の表の任意のオプションを指定できます。
オプション
説明
/user:[Domain\]Username
プロファイラーへのアクセスを許可するアカウントのオプションのドメインとユーザー名を指定します。
他のログオン セッションにおけるプロセスのプロファイリングを有効にします。
/wincounter:WinCounterPath
プロファイリング実行中に収集する Windows パフォーマンス カウンターを指定します。
/automark:Interval
/wincounter と共にのみ使用します。Windows パフォーマンス カウンター コレクション イベントの間隔をミリ秒単位で指定します。既定値は 500 です。
/events:Config
プロファイリング実行中に収集する ETW (Event Tracing for Windows) イベントを指定します。ETW イベントは独立した (.etl) ファイルに収集されます。
次のコマンドを入力して、対象アプリケーションにプロファイラーをアタッチします。
VSPerfCmd /attach:{PID|ProcName}
PID には、対象アプリケーションのプロセス ID を指定します。Windows タスク マネージャーで、実行中のすべてのプロセスのプロセス ID を参照できます。
データ収集の制御
対象アプリケーションの実行中は、VSPerfCmd.exe のオプションを使用してファイルへのデータ書き込みを開始および停止することにより、データ収集を制御できます。データ収集を制御することにより、アプリケーションの起動や終了など、プログラム実行の特定部分のデータを収集できます。
データ収集を開始および停止するには
次の表に示すオプションの組み合わせにより、データ収集を開始および停止します。個別のコマンド ラインで各オプションを指定します。データ収集のオンとオフは複数回切り替えることができます。
オプション
説明
すべてのプロセスのデータ収集を開始 (/globalon) または停止 (/globaloff) します。
/processon:PID/processoff:PID
プロセス ID (PID) で指定されたプロセスのデータ収集を開始 (/processon) または停止 (/processoff) します。
/attach は、プロセス ID (PID) またはプロセス名 (ProcName) で指定したプロセスのデータ収集を開始します。/detach は、指定されたプロセスのデータ収集を停止します。プロセスが指定されていない場合は、すべてのプロセスのデータ収集を停止します。
プロファイル セッションの終了
プロファイル セッションを終了するには、プロファイラーがデータ収集を停止している必要があります。アプリケーションを終了するか VSPerfCmd /detach オプションを呼び出すことによって、サンプリング メソッドを使用してプロファイリングが実行されているアプリケーションからのデータ収集を停止できます。次に、VSPerfCmd /shutdown オプションを呼び出して、プロファイラーをオフにし、プロファイル データ ファイルを閉じます。
プロファイル セッションを終了するには
対象のアプリケーションを終了するか次のコマンドを入力し、アプリケーションからプロファイラーをデタッチします。
VSPerfCmd /detach
次のコマンドを入力してプロファイラーを終了します。
VSPerfCmd /shutdown