方法: コマンド ラインを使用してプロファイラーによってスタンドアロン アプリケーションを起動し、アプリケーション統計情報を収集する
ここでは、Visual Studio プロファイリング ツールのコマンド ライン ツールを使用してスタンドアロン (クライアント) アプリケーションを起動し、サンプリング メソッドによってパフォーマンスに関する統計情報を収集する方法について説明します。
[!メモ]
Windows 8 のセキュリティ強化の機能および Windows Server 2012 では、Visual Studio プロファイラーがこれらのプラットフォームのデータを収集する方法に大きな変更されました。Windows ストア apps は、新しいコレクション手法が必要です。「Windows 8 および Windows Server 2012 アプリケーションのプロファイリング」を参照してください。
プロファイリング実行に階層相互作用データを追加することは、コマンド ライン プロファイリング ツールで特定の手順が必要です。「コマンド ラインからの階層相互作用データの追加」を参照してください。
プロファイラー コマンド ライン ツールを使用するには、コマンド プロンプト ウィンドウの PATH 環境変数にそのパスを追加するか、コマンド自体にこのパスを追加します。Visual Studio が、Visual Studio のコマンド ウィンドウからインストールされているコンピューターでプロファイリング ツールを実行できます。
- Visual Studio コンピューターでプロファイリング ツールをインストール実行する Visual Studio のコマンド ウィンドウが正しいパスを設定します。[ツール] で、メニューの [VS command prompt] を選択します。
[!メモ]
プロファイリング ツールのコマンド ライン ツールは、Visual Studio インストール ディレクトリの \Team Tools\Performance Tools サブディレクトリにあります。64 ビット コンピューター上では、64 ビット バージョンのツールと 32 ビット バージョンのツールの両方を使用できます。プロファイラー コマンド ライン ツールを使用するには、コマンド プロンプト ウィンドウの PATH 環境変数にそのパスを追加するか、コマンド自体にこのパスを追加します。詳細については、「プロファイル ツールのコマンド ライン ツールへのパスの指定」を参照してください。
プロファイラーによるアプリケーションの起動
プロファイラーを使用して対象アプリケーションを起動するには、VSPerfCmd の /start オプションと /launch オプションを使用して、プロファイラーを初期化し、アプリケーションを起動します。/start と /launch、およびそれぞれのオプションは、1 つのコマンド ラインで指定できます。
/globaloff オプションを追加して、対象アプリケーションの起動時にデータ収集を一時停止することもできます。その後、/globalon を使用してデータの収集を開始します。
プロファイラーを使用してアプリケーションを起動するには
コマンド プロンプト ウィンドウを開きます。
プロファイラーを起動します。Type:
**VSPerfCmd /start:sample /output:**OutputFile [Options]
/start:sample オプションによってプロファイラーが初期化されます。
/start には /output**:**OutputFile オプションを指定する必要があります。OutputFile には、プロファイル データ (.vsp) ファイルの名前と場所を指定します。
/start:sample オプションを使用する場合は、次のうちいずれかのオプションを指定できます。
オプション
説明
/wincounter:WinCounterPath
プロファイリング実行中に収集する Windows パフォーマンス カウンターを指定します。
/automark:Interval
/wincounter と共にのみ使用します。Windows パフォーマンス カウンター収集イベントの間隔をミリ秒単位で指定します。既定値は 500 ミリ秒です。
/events:Config
プロファイリング実行中に収集する ETW (Event Tracing for Windows) イベントを指定します。ETW イベントは独立した (.etl) ファイルに収集されます。
対象アプリケーションを起動します。「**VSPerfCmd /launch:**appName [Options] [Sample Event]」と入力します。
/launch オプションを使用する場合は、次の 1 つ以上のオプションを指定できます。
オプション
説明
/args:Arguments
対象アプリケーションへ渡されるコマンド ライン引数を格納する文字列を指定します。
対象のコマンド ライン アプリケーションを別のウィンドウで起動でします。
既定では、パフォーマンス データはプロセッサのクロック サイクル数 10,000,000 (停止なし) ごとにサンプリングされます。このため、1 GHz のプロセッサでは 10 ミリ秒ごとに約 1 回です。次のオプションのいずれかを指定すると、クロック サイクルの間隔の変更や、別のサンプリング イベントの指定ができます。
サンプリング イベント
説明
/timer:Interval
サンプリングの間隔を、Interval で指定された停止なしのクロック サイクル数に変更します。
/pf[:Interval]
サンプリング イベントをページ フォールトに変更します。Interval を指定した場合は、サンプル間のページ フォールト数が設定されます。既定値は 10 です。
/sys[:Interval]
サンプリング イベントを、プロセスからオペレーティング システムのカーネルへのシステム コール (syscall) に変更します。Interval を指定した場合は、サンプル間の呼び出し回数が設定されます。既定値は 10 です。
/counter:Config
サンプリング イベントと間隔を、プロセッサのパフォーマンス カウンターと、Config で指定した間隔に、それぞれ変更します。
データ収集の制御
対象アプリケーションの実行中に、VSPerfCmd.exe のオプションを使用して、プロファイラーのデータ ファイルへのデータ書き込みを開始および停止することにより、データ収集を制御できます。データ収集を制御することにより、アプリケーションの起動や終了など、プログラム実行の特定の部分についてのデータ収集を行うことができます。
データ収集を開始および停止するには
次に示すオプションの組み合わせにより、データ収集を開始および停止します。個別のコマンド ラインで各オプションを指定します。データ収集のオンとオフは複数回切り替えることができます。
オプション
説明
すべてのプロセスのデータ収集を開始 (/globalon) または停止 (/globaloff) します。
/processon:PID/processoff:PID
プロセス ID (PID) で指定されたプロセスのデータ収集を開始 (/processon) または停止 (/processoff) します。
/attach は、PID またはプロセス名 (ProcName) で指定したプロセスのデータ収集を開始します。/detach は、指定されたプロセスのデータ収集を停止します。特定のプロセスが指定されていない場合は、すべてのプロセスのデータ収集を停止します。
VSPerfCmd.exe/mark オプションを使用して、データ ファイルにプロファイル マークを挿入することもできます。/mark コマンドは、ID、タイム スタンプ、およびオプションのユーザー定義文字列を追加します。マークは、プロファイラー レポートおよびデータ ビューでデータをフィルター処理するために使用できます。
プロファイル セッションの終了
プロファイル セッションを終了するには、プロファイリングされたプロセスへのプロファイラーのアタッチを解除し、プロファイラーを明示的に終了する必要があります。サンプリング メソッドを使用してプロファイリングを実行したアプリケーションからプロファイラーをデタッチするには、アプリケーションを終了するか、VSPerfCmd /detach オプションを呼び出します。次に、VSPerfCmd /shutdown オプションを呼び出して、プロファイラーをオフにし、プロファイル データ ファイルを閉じます。VSPerfClrEnv /off コマンドで、プロファイル環境変数を消去します。
プロファイル セッションを終了するには
対象アプリケーションからプロファイラーをデタッチするには、次のいずれかの手順を実行します。
対象アプリケーションを終了します。
または
「VSPerfCmd /detach」と入力します。
プロファイラーをシャットダウンします。Type:
VSPerfCmd/shutdown
参照
概念
スタンドアロン アプリケーションのコマンド ラインによるプロファイリング