VSPerfCmd
更新 : 2007 年 11 月
VSPerfCmd ツールは、パフォーマンス データの収集を開始および停止するために使用します。このツールは、次の構文を使います。
VSPerfCmd [/U] [/options]
VSPerfCmd ツールのオプションの説明を次の表に示します。
オプション |
説明 |
U |
リダイレクトされたコンソール出力は Unicode として書き込まれます。最初に指定する必要があります。 |
Start:mode |
VSPerfMon を起動して初期化が完了するのを待ちます。Output スイッチを指定する必要があります。 mode は、以下のいずれかです。 COVERAGE - コード カバレッジ データを収集します。 SAMPLE - サンプリング データを収集します。 TRACE - インストルメンテーション データを収集します。 |
Output:filename |
出力ファイル名を指定します。 |
CrossSession|CS |
プロセス間プロファイリングを有効にします。CROSSSESSION と CS はどちらもオプション名としてサポートされています。 |
User:[domain\]username |
START オプションと一緒に使用します。指定したアカウントからモニタへのクライアント アクセスを許可します。 |
WaitStart[:n] |
データ コレクション ロガーの初期化が完了するのを待ちます。n を指定した場合、VSPerfCmd は最大で n 秒間待機します。n を指定しなかった場合、VSPerfCmd は無期限に待機します。これにより、バッチ プロセスの一部として VSPerfCmd を利用することが容易になります。 |
Counter:cfg |
サンプル プロファイリング方式を使用するときは、CPU カウンタとサンプリング間隔として使用するイベントの数を指定します。サンプリングできるカウンタ値は 1 つだけです。 インストルメンテーション プロファイリング方式を使用するときに、各インストルメンテーション ポイントで収集する CPU カウンタを指定します。複数の Counter オプションを指定すると、複数のカウンタ データを収集できます (インストルメンテーションのみ)。 カウンタ (cfg) データを指定するには、次の構文を使用します。 CounterName[,Reload[,FriendlyName]]
|
QueryCounters |
プラットフォームに有効なカウンタの一覧を表示します。 |
WinCounter:path |
マーク データを使用する Windows パフォーマンス カウンタを指定します。path は、PDH カウンタ パス形式で記述した Windows パフォーマンス カウンタ文字列です。次に例を示します。 \Processor(0)\% Processor Time \System\Context Switches/sec |
AutoMark:n |
/WINCOUNTER を使用して、自動的なマークを行う時間間隔 (ミリ秒) を指定します。値は、500ms 単位に切り上げられます。 0 を使用すると、自動的なマークは無効になります。(指定しない場合、既定の 500 ミリ秒になります) |
Events:option |
EVENTS オプションは、イベント トレース ウィンドウ (ETW) イベント コレクションを制御します。収集されるデータは ETW プロバイダによって提供されます。option の書式は次のとおりです。 <on | off>, <guid>[,flags[,level]] <on | off>, <provider name>[,flags[,level]] guid - プロバイダ コントロール GUID。または、プロバイダ名が WMI に登録されている場合は GUID の代わりにプロバイダ名を指定することもできます。 flags - '0x' をプレフィックスとして持つ、16 進のフラグ値。この値はイベント プロバイダによって定義されます。詳細については、ETW プロバイダのドキュメントを参照してください。 level - 収集する情報の量を指定します。この値はイベント プロバイダによって定義されます。詳細については、ETW プロバイダのドキュメントを参照してください。
重要 :
CLR ETW イベントを有効にした場合は、追加のスタートアップ データも TraceView レポートに収集されます。レポートにスタートアップ イベントが出力されないようにするには、次のコマンドを使用します。 C:\<path>VSPerfCmd -events on, \".NET Common Language Runtime\", 0x7fffffff, 5 Managed Object Format (MOF) ファイルにスタートアップ イベントがリストされていないという理由でスタートアップ イベントを除外しなかった場合、これらのイベントはレポート内で GUID として表示されます。詳細については、「Sample Managed Object Format (MOF) File」を参照してください。
さらに、EVENTS オプションは、次の共通のカーネル オプションを認識します。 on, option[,option] option は次のいずれかになります。 Process - プロセス イベント Thread - スレッド イベント Image - イメージの読み込み/アンロード イベント Disk - ディスク I/O イベント File - ファイル I/O イベント Hardfault - ハード ページ フォールト Pagefault - ソフト ページ フォールト Network - ネットワーク イベント Registry - レジストリ アクセス イベント カーネル プロバイダは、有効化のみが可能です。カーネル プロバイダは、モニタがシャットダウンするまでは無効にしたりそのフラグを変更したりすることはできません。 |
Status |
プロファイリングされるプロセスに適用されるステータス。プロセスとスレッド、およびそれらの現在のプロファイル状態 (オン/オフ) が表示されます。たとえば、プロセスが停止された場合、STATUS はこれをレポートに表示しません。プロセスがプロファイリングされるかどうかが示されます。 |
ShutDown[:n] |
監視対象のアプリケーションが終了またはデタッチするのを待ち、その後 VSPerfMon.exe を終了して、完全にシャットダウンするまで待機します。n を指定した場合、VSPerfCmd は最大で n 秒間待機します。n を指定しなかった場合、VSPerfCmd は無期限に待機します。これにより、バッチ プロセスの一部として VSPerfCmd を利用することが容易になります。 |
GlobalOn |
GLOBALON オプションは、GLOBALOFF 後にプロファイリングを有効にします。内部的に、GLOBALON オプションは、グローバルな開始/停止数を 1 に設定します。詳細については、GLOBALOFF の説明を参照してください。 |
GlobalOff |
GLOBALOFF オプションはすべてのプロファイリングを無効にします。データは収集されません。このオプションは、パフォーマンス セッションをシャットダウンしません。このオプションを使用すると、アプリケーションのスタートアップ フェーズまたは初期化フェーズでのデータの収集を回避できます。 不適切なデータを収集しないようにするには次のようにします。 |
ProcessOn:pid |
PROCESSON は、PROCESSOFF 呼び出しの後にプロセス ID (pid) を使用して特定のプロセスのプロファイリングを再開します。内部的に、PROCESSON オプションは、指定されたプロセスの開始/停止数を 1 に設定します。 |
ProcessOff:pid |
PROCESSOFF オプションは、プロセス ID (pid) を使用して特定のプロセスのプロファイリングとデータ収集を停止します。他のプロセスまたはスレッドは、データの収集を続行します。このオプションは、プロセスが特定の状態に達する前にデータの収集を停止する場合に便利です。プロセスが特定の状態に達した後は、PROCESSON オプションを使用してデータ収集を開始できます。内部的に、PROCESSOFF オプションは、指定されたプロセスの開始/停止数を 0 に設定します。 |
ThreadOn:tid |
THREADON は、THREADOFF 呼び出しの後にスレッド ID (tid) を使用して特定のスレッドのプロファイリングを再開します。内部的に、THREADON オプションは、指定されたスレッドの開始/停止数を 1 に設定します。 このオプションは、トレース モードでだけ有効です。 |
ThreadOff:tid |
THREADOFF オプションは、スレッド ID (tid) を使用して特定のスレッドのプロファイリングとデータ収集を停止します。 他のプロセスまたはスレッドは、データの収集を続行します。このオプションは、スレッドが特定の状態に達する前にデータの収集を停止する場合に便利です。スレッドが特定の状態に達した後は、THREADON オプションを使用してデータ収集を開始できます。内部的に、THREADOFF オプションは、指定されたスレッドの開始/停止数を 0 に設定します。 このオプションは、トレース モードでだけ有効です。 |
MARK:MarkNum[,MarkText] |
グローバル イベント ストリームにマークとオプションのテキストを挿入します。このオプションは、2 つのマークの間でデータを調べる場合に便利です。 marknum - ULONG データ型の任意の値 また、コード内で MarkProfile API を呼び出して、アプリケーションの特定の領域にマークを設定できます。この情報は、CallTrace レポートでのみ使用できます。 |
サンプリング方式のオプション
次のオプションは、サンプル モードでのみ利用できます。
オプション |
説明 |
---|---|
Launch:実行可能ファイル |
指定されたコマンドを起動し、サンプル ベースのプロファイラをアタッチします。 |
Args:引数 |
起動するアプリケーションの引数。 |
Console |
指定されたコマンドを新しいコンソールで実行します。 |
Attach:PID[,PID] |
サンプル ベースのプロファイラを指定されたプロセス ID (pid or process name) にアタッチします。 |
Detach:PID[,PID] |
サンプル ベースのプロファイラを指定されたプロセス ID (pid or process name) からデタッチします。 |
Detach |
サンプル ベースのプロファイラをすべてのプロセスからデタッチします。 |
GC[:Allocation|:Lifetime] |
このオプションは、サンプリング モードでだけ使用できます。マネージ メモリ プロファイリングを有効にします。GC:allocation(s) で割り当てのトレースだけを有効にしたり、GC:lifetime でオブジェクトの有効期間のトレースだけを有効にしたりできます。既定では、割り当てのトレースだけが有効になります。これは、/LAUNCH オプションと共に使用した場合にのみ有効です。 |
PF[:n] |
n 番目のページ フォールトごとにサンプリングを行います (既定 = 10)。 |
Sys[:n] |
n 番目のシステム コールごとにサンプリングを行います (既定 = 10)。 |
Timer[:n] |
n 番目のサイクルごとにサンプリングを行います (既定 = 10000000)。 |
サービス コンポーネントとカーネル モード デバイスのオプション
次のオプションは、プロファイリング サービス コンポーネントまたはカーネル モード デバイス ドライバをサポートします。これらのオプションにより、プロファイルのアクセス許可が設定されます。これらのオプションは、管理者として実行しているコマンド ライン コンソールから実行する必要があります。詳細については、「Using the Run As Command」を参照してください。
オプション |
説明 |
---|---|
Admin:Security <ALLOW|DENY> Right[ Right] <User|Group> |
プロファイリング サービスに対して、指定のユーザー アクセスまたはグループ アクセスを許可/拒否します。 Right は、以下の値を取ります。 CrossSession - セッション間プロファイリングを実行するサービスに対するユーザー アクセスを提供します。 SampleProfiling - サンプリング プロファイルを有効にするドライバへのユーザー アクセスを提供します。トレース プロファイル中の、カーネル転送情報へのアクセスにも使用されます。 FullAccess - CrossSession ユーザー アクセスと SampleProfiling ユーザー アクセスの両方を提供します。 |
Admin:Security, List |
プロファイリング サービスの現在の状態を示し、ユーザーのアクセス権を一覧表示します。 |
Admin: <Service|Driver><START|STOP|INSTALL|UNINSTALL> |
プロファイリング サービス コンポーネント (サービス) またはカーネル モード デバイス ドライバ (ドライバ) の開始、停止、インストール、またはアンインストールを行います。 |
Admin: <Service|Driver>AutoStart <ON|OFF> |
再起動後の、プロファイリング サービス (サービス) またはカーネル モード デバイス ドライバ (ドライバ) の自動的な開始を有効または無効にします。 |
VsPerfDrv.sys
以前のバージョンのプロファイラでは、VSPerfDrv.Sys を使用した CPU カーネル モードのアプリケーションからの収集をサポートしていました。VsPerfDrv.sys は互換性のために残されていますが、この機能を使う場合、VsPerfCmd ADMIN オプションを使用してください。