VSPerfCmd
更新:2007 年 11 月
VSPerfCmd 工具是用來啟動和停止效能資料收集作業,這個工具會使用下列語法:
VSPerfCmd [/U] [/options]
下表說明 VSPerfCmd 工具選項:
選項 |
說明 |
||
---|---|---|---|
U |
會以 Unicode 格式撰寫已重新導向的主控台輸出。必須是第一個指定的選項。 |
||
Start:mode |
開始 VSPerfMon 並等待初始化完成。必須使用 Output 參數。 mode 可以是下列其中一個: COVERAGE - 收集程式碼涵蓋範圍資料 SAMPLE - 收集取樣資料 TRACE - 收集檢測資料 |
||
Output:filename |
指定輸出檔名稱。 |
||
CrossSession|CS |
啟用跨處理序 (Cross-Process) 程式碼剖析。支援選項名稱 CROSSSESSION 和 CS。 |
||
User:[domain\]username |
與 START 選項搭配使用。讓用戶端從指定的帳號存取監視器。 |
||
WaitStart[:n] |
等待資料收集記錄器進行初始化。如果指定 n,則 VSPerfCmd 最多會等待 n 秒。如果 n 未指定,則 VSPerfCmd 會一直等待。這有助於使用 VSPerfCmd 做為批次程序的一部分。 |
||
Counter:cfg |
使用取樣程式碼剖析方法時,指定 CPU 計數器和要當做取樣間隔使用的事件數。您只能針對一個計數器值取樣。 使用檢測程式碼剖析方法時,指定要在每個檢測點收集的 CPU 計數器。您可以指定多個計數器選項,收集多個計數器的資料 (僅限檢測)。 請使用下列語法指定計數器 (cfg) 資料: CounterName[,Reload[,FriendlyName]]
|
||
QueryCounters |
顯示平台可用的計數器清單。 |
||
WinCounter:path |
指定要加入標記資料的 Windows 效能計數器。path 是 PDH 計數器路徑格式的 Windows 效能計數器字串。例如: \Processor(0)\% Processor Time \System\Context Switches/sec |
||
AutoMark:n |
指定使用 /WINCOUNTER 時自動標記的間隔時間 (以毫秒為單位)。四捨五入到最接近的 500 毫秒數。 請使用 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' 前置字元的十六進位旗標值,並且由事件提供者定義。如需詳細資訊,請參閱 ETW 提供者文件。 level - 決定要收集多少資訊,並且由事件提供者定義。如需詳細資訊,請參閱 ETW 提供者文件。
此外,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 選項會設定全域 Start/Stop 計數為一。如需詳細資訊,請參閱 GLOBALOFF。 |
||
GlobalOff |
GLOBALOFF 選項可停用所有程式碼剖析,不收集資料。這個選項不會關閉效能工作階段。您可以使用這個選項,避免在應用程式啟動或初始化階段期間收集資料。 若要避免收集不相關的資料: |
||
ProcessOn:pid |
PROCESSON 會在呼叫 PROCESSOFF 之後,使用特定處理序的處理序 ID (pid) 重新啟動此處理序的程式碼剖析。在內部,PROCESSON 選項會為指定的處理序設定 Start/Stop 計數為一。 |
||
ProcessOff:pid |
PROCESSOFF 選項會使用特定處理序的處理序 ID (pid),停止此處理序的程式碼剖析和資料收集。其他的處理序或執行緒則會繼續收集資料。如果您想要在處理序到達某個特定狀態之後才開始收集資料,這個選項就很有用。您可以在處理序到達特定狀態之後,使用 PROCESSON 選項開始資料收集。在內部,PROCESSOFF 會為指定的處理序設定 Start/Stop 計數為零。 |
||
ThreadOn:tid |
THREADON 會在呼叫 THREADOFF 之後,使用特定執行緒的執行緒 ID (tid) 重新啟動此執行緒的程式碼剖析。在內部,THREADON 選項會為指定的執行緒設定 Start/Stop 計數為一。 這個選項只適用於 TRACE 模式。 |
||
ThreadOff:tid |
THREADOFF 選項會使用特定執行緒的執行緒 ID (tid),停止此執行緒的程式碼剖析和資料收集。 其他的處理序或執行緒則會繼續收集資料。如果您想要在執行緒到達某個特定狀態之後才開始收集資料,這個選項就很有用。您可以在執行緒到達特定狀態之後,使用 THREADON 選項開始資料收集。在內部,THREADOFF 會為指定的執行緒設定 Start/Stop 計數為零。 這個選項只適用於 TRACE 模式。 |
||
MARK:MarkNum[,MarkText] |
將標記插入全域事件資料流 (可包含選擇性的文字)。如果您想要檢查兩個標記之間的資料,則這個選項就很有用。 marknum - 任何 ULONG 資料型別的數值 或者,您可以在程式碼中呼叫 MarkProfile API,標記應用程式的特定區域。只有呼叫追蹤報告才能提供這項資訊。 |
取樣方法選項
下列選項只適用於 SAMPLE 模式:
選項 |
說明 |
---|---|
Launch:可執行檔 |
啟動指定的命令並附加取樣架構的程式碼剖析工具。 |
Args:引數 |
啟動之應用程式的引數。 |
Console |
在新主控台中啟動指定的命令。 |
Attach:PID[,PID] |
將取樣架構的程式碼剖析工具附加至指定的處理序 ID:pid or process name。 |
Detach:PID[,PID] |
將取樣架構的程式碼剖析工具從指定的處理序 ID 中斷連結:pid or process name。 |
Detach |
從所有處理序中斷連結取樣架構的程式碼剖析工具。 |
GC[:Allocation|:Lifetime] |
這個選項只適用於取樣模式,會啟用 Managed 記憶體程式碼剖析。可以只啟用 GC:allocation 配置的追蹤,或是啟用物件 GC:lifetime 之配置和存留期 (Lifetime) 的追蹤。預設值為只啟用配置追蹤。必須和 /LAUNCH 選項搭配使用才有效。 |
PF[:n] |
在每 n 個分頁錯誤時取樣 (n 預設值為 10)。 |
Sys[:n] |
在每 n 個系統呼叫時取樣 (n 預設值為 10)。 |
Timer[:n] |
在每 n 個循環時取樣 (n 預設值為 10000000)。 |
服務元件和核心模式裝置選項
下列選項支援程式碼剖析服務元件或核心模式裝置驅動程式。這些選項會設定程式碼剖析使用權限。您必須以系統管理員的身分,從命令列主控台執行這些選項。如需詳細資訊,請參閱使用執行身分命令 (英文)。
選項 |
說明 |
---|---|
Admin:Security <ALLOW|DENY> Right[ Right] <User|Group> |
允許或拒絕指定的使用者或群組存取程式碼剖析服務。 Right 可以是: CrossSession - 賦予使用者存取服務的權限,以便跨工作階段進行程式碼剖析; SampleProfiling - 賦予使用者存取驅動程式的權限,以啟用取樣程式碼剖析。也可用來在追蹤程式碼剖析期間,存取核心轉換資訊。 FullAccess - 賦予使用者存取 CrossSession 和 SampleProfiling 的權限。 |
Admin:Security, List |
列出程式碼剖析服務目前的狀態,並列出使用者權限。 |
Admin: <Service|Driver><START|STOP|INSTALL|UNINSTALL> |
啟動、停止、安裝或解除安裝程式碼剖析服務元件 (service) 或核心模式裝置驅動程式 (driver)。 |
Admin: <Service|Driver>AutoStart <ON|OFF> |
啟用或停用在重新開機後自動啟動程式碼剖析服務 (service) 或核心模式裝置驅動程式 (driver) 的功能。 |
VsPerfDrv.sys
舊版的程式碼剖析工具支援利用 VSPerfDrv.Sys 從 CPU 核心模式應用程式進行收集。VsPerfDrv.sys 已過時。如需此功能,請使用 VsPerfCmd ADMIN 選項。