次の方法で共有


方法: コマンド ラインを使用してプロファイラーをネイティブ サービスにアタッチし、アプリケーションの統計情報を収集する

ここでは、Visual Studio プロファイリング ツールのコマンド ライン ツールを使用して、プロファイラーをネイティブ サービスにアタッチし、サンプリング メソッドによってパフォーマンスに関する統計情報を収集する方法について説明します。

[!メモ]

Windows 8 のセキュリティは強化された機能および Windows Server 2012 は、Visual Studio のプロファイラーがこれらのプラットフォームのデータを収集する方法に大きな変更されました。Windows ストア apps は、新しいコレクション手法が必要です。「Windows 8 および Windows Server 2012 アプリケーションのプロファイリング」を参照してください。

[!メモ]

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

プロファイラーをサービスにアタッチしている間はデータ収集を一時停止し、完了後に再開できます。

プロファイル セッションを終了するには、プロファイラーをサービスからデタッチし、プロファイラーを明示的に終了する必要があります。

プロファイラーによるアプリケーションの起動

プロファイラーをネイティブ サービスにアタッチするには、VSPerfCmd.exe/start オプションおよび /attach オプションを使用して、プロファイラーを初期化し、ターゲット アプリケーションにアタッチします。/start/attach、およびそれぞれのオプションは、同じコマンド ライン上に指定できます。/globaloff オプションを追加して、対象アプリケーションの起動時にデータ収集を一時停止することもできます。その後、/globalon を使用してデータの収集を開始できます。

プロファイラーをネイティブ サービスにアタッチするには

  1. 起動の必要なサービスがあれば起動します。

  2. コマンド プロンプト ウィンドウを開きます。

  3. プロファイラーを起動します。Type:

    VSPerfCmd /start:sample /output**:**OutputFile [Options]

    • /start:sample オプションによってプロファイラーが初期化されます。

    • /start を使用する場合は **/output:**OutputFile オプションを指定する必要があります。OutputFile には、プロファイル データ (.vsp) ファイルの名前と場所を指定します。

    /start:sample オプションを使用する場合は、次のうちいずれかのオプションを指定できます。

    [!メモ]

    /user オプションと /crosssession オプションは、通常、サービスで必要です。

    オプション

    説明

    /user:[Domain\]UserName

    プロファイリングされたプロセスを所有するアカウントのドメインおよびユーザー名を指定します。このオプションは、ログオンしているユーザーとは別のユーザーがプロセスを実行している場合にのみ指定する必要があります。プロセスの所有者は、Windows タスク マネージャーの [プロセス] タブの [ユーザー名] 列に表示されます。

    /crosssession

    他のセッションにおけるプロセスのプロファイリングを有効にします。このオプションは、アプリケーションが別のセッションで実行されている場合に必要です。セッション ID は、Windows タスク マネージャーの [プロセス] タブの [セッション ID] 列に表示されます。/crosssession の省略形として、/CS を指定することができます。

    /wincounter:WinCounterPath

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

    /automark:Interval

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

    /events:Config

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

  4. プロファイラーをサービスにアタッチします。Type:

    **VSPerfCmd /attach:**PID [Sample Event]

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

    既定では、パフォーマンス データはプロセッサのクロック サイクル数 10,000,000 (停止なし) ごとにサンプリングされます。このため、1 GHz のプロセッサでは 10 秒ごとに約 1 回です。次のオプションのいずれかを指定すると、クロック サイクルの間隔の変更や、別のサンプリング イベントの指定ができます。

    サンプリング イベント

    説明

    /timer:Interval

    サンプリングの間隔を、Interval で指定された停止なしのクロック サイクル数に変更します。

    /pf[:Interval]

    サンプリング イベントをページ フォールトに変更します。Interval を指定した場合は、サンプル間のページ フォールト数が設定されます。既定値は 10 です。

    /sys [:Interval]

    サンプリング イベントを、プロセスからオペレーティング システムのカーネルへのシステム コール (syscall) に変更します。Interval を指定した場合は、サンプル間の呼び出し回数が設定されます。既定値は 10 です。

    /counter:Config

    サンプリング イベントと間隔を、プロセッサのパフォーマンス カウンターと、Config で指定した間隔に、それぞれ変更します。

データ収集の制御

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

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

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

    オプション

    説明

    /globalon /globaloff

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

    /processon:PID/processoff:PID

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

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

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

  • VSPerfCmd.exe/mark オプションを使用して、データ ファイルにプロファイル マークを挿入することもできます。/mark コマンドは、ID、タイムスタンプ、およびオプションでユーザー定義の文字列を追加します。マークは、プロファイラー レポートおよびデータ ビューでデータをフィルター処理するために使用できます。

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

プロファイル セッションを終了するには、プロファイラーをサービスからデタッチし、明示的に終了する必要があります。サービスを停止するか VSPerfCmd /detach オプションを呼び出すことによって、サンプリング メソッドでプロファイリングが実行されているネイティブ サービスをデタッチできます。次に、VSPerfCmd /shutdown オプションを呼び出して、プロファイラーをオフにし、プロファイル データ ファイルを閉じます。

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

  1. 対象アプリケーションからプロファイラーをデタッチするには、次のいずれかの操作を行います。

    • サービスを停止します。

      または

    • VSPerfCmd /detach」と入力します。

  2. プロファイラーをシャットダウンします。Type:

    VSPerfCmd /shutdown

参照

概念

サービスのコマンド ライン プロファイリング

その他の技術情報

プロファイラー サンプリング メソッドのデータ ビュー