共用方式為


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]]

  • CounterName 是 VSPerfCmd /QueryCounters 命令傳回的計數器名稱。

  • Reload 是計數器事件取樣間隔。當您使用檢測方法時,會忽略 Reload。

  • FriendlyName 是選擇項。如果有指定,這是會取代程式碼剖析工具檢視和報告中 CounterName 值的字串。

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 提供者文件。

重要事項:

當 CLR ETW 事件啟用時,在追蹤檢視報告中也會收集額外的啟動資料。若要排除啟動事件,不在報告中顯示,請使用下列命令:

C:\<path>VSPerfCmd -events on, \".NET Common Language Runtime\", 0x7fffffff, 5

由於這些事件未列在 Managed 物件格式 (MOF) 檔中,因此假如您不排除啟動事件,則這些事件在報告中便會顯示為 GUIDS。如需詳細資訊,請參閱 Managed 物件格式 (MOF) 檔案範例 (英文)。

此外,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 選項。

請參閱

參考

VSInstr

VSPerfMon

VSPerfReport

程式碼剖析工具報告資料行定義