如何:使用命令列將程式碼剖析工具附加至 .NET 服務以收集並行資料
本主題說明如何使用 Visual Studio 程式碼剖析工具命令列工具將分析工具附加至 .NET Framework 服務,以及使用取樣方法收集處理序和執行緒並行資料。
注意事項 |
---|
Windows 8 和 Windows Server 2012 中的增強安全性功能,需要在 Visual Studio 分析工具收集這些平台資料的方式上進行重大變更。Windows 市集應用程式也需要新的收集技術。請參閱 剖析 Windows 8 和 Windows Server 2012 應用程式。 |
注意事項 |
---|
程式碼剖析工具的命令列工具位於安裝目錄的 \Team Tools\Performance Tools 子目錄中。在 64 位元電腦上,64 位元和 32 位元版本的工具都可以使用。若要使用程式碼剖析工具命令列工具,必須將工具路徑加入至命令提示字元視窗的 PATH 環境變數,或將它加入至命令本身。如需詳細資訊,請參閱指定程式碼剖析工具命令列工具的路徑。 |
若要收集並行資料,請將分析工具附加至服務處理序。當程式碼剖析工具附加至服務時,您可以暫停和繼續資料收集。若要結束程式碼剖析工作階段,程式碼剖析工具必須不再附加至服務,而且程式碼剖析工具必須明確地關閉。在許多情況下,我們建議在工作階段結尾清除程式碼剖析環境變數。
附加程式碼剖析工具
若要將程式碼剖析工具附加至 .NET Framework 服務
安裝服務。
開啟命令視窗
初始化程式碼剖析環境變數。型別:
VSPerfClrEnv/globalsampleon [/samplelineoff]
/globalsampleon 啟用取樣。
/samplelineoff 會停用將收集的資料指派到特定原始碼程式行。已指定這個選項時,資料只會指派給函式。
重新啟動電腦。
啟動程式碼剖析工具。型別:
VSPerfCmd/start:concurrency **/output:**OutputFile [Options]
/output**:**OutputFile 選項必須搭配 /start 使用。OutputFile 指定程式碼剖析資料 (.vsp) 檔案的名稱和位置。
下列任何選項都可以搭配 /start 選項使用。
注意事項 服務通常需要 /user 和 /crosssession 選項。
選項
描述
/user:[Domain\]UserName
指定擁有已進行程式碼剖析處理序之帳戶的網域和使用者名稱。只有在處理序是以非登入使用者的身分執行時,才需要這個選項。處理序擁有人列於 [Windows 工作管理員] 的 [處理程序] 索引標籤上的 [使用者名稱] 資料行。
對其他工作階段中的處理序啟用程式碼剖析。如果服務在不同的工作階段中執行,則需要這個選項。工作階段 ID 列於 [Windows 工作管理員] 之 [處理程序] 索引標籤上的 [工作階段識別碼] 資料行。/CS 可以當做 /crosssession 的縮寫來指定。
/wincounter:WinCounterPath
指定程式碼剖析期間要收集的 Windows 效能計數器。
/automark:Interval
僅能與 /wincounter 搭配使用。指定 Windows 效能計數器收集事件之間的毫秒數。預設為 500 毫秒。
/events:Config
指定程式碼剖析期間要收集的 Windows 事件追蹤 (ETW) 事件。ETW 事件是在不同的 (.etl) 檔案中收集的。
如有必要,請啟動服務。
將程式碼剖析工具附加到服務。型別:
**VSPerfCmd /attach:PID [/targetclr:**Version]
PID 會指定服務的處理序 ID 或處理序名稱。您可以在 [Windows 工作管理員] 中檢視所有執行中處理序的處理序 ID。
如果有多個 Common Language Runtime (CLR) 版本載入到某一種應用程式中,則 **targetclr:**Version 會指定要進行程式碼剖析的 Runtime 版本。選擇項。
控制資料收集
當服務正在執行時,您可以使用 VSPerfCmd.exe 選項啟動及停止將資料寫入檔案,以控制資料收集。資料收集控制可讓您收集程式執行中特定組件的資料,例如應用程式的開始與結束。
若要啟動和停止資料收集
下列 VSPerfCmd 選項配對會啟動和停止資料收集。在不同的命令列上指定每個選項。您可以多次開啟或關閉資料收集。
選項
描述
啟動 (/globalon) 或停止 (/globaloff) 所有處理序的資料收集。
/processon:PID/processoff:PID
啟動 (/processon) 或停止 (/processoff) 對處理序 ID (PID) 所指定的處理序進行資料收集。
/attach:{PID|ProcName} /detach[:{PID|ProcName}]
/attach 會開始針對處理序 ID 或處理序名稱指定的處理序來收集資料。/detach 會停止對指定的處理序收集資料,如果沒有指定特定的處理序,則停止所有處理序的資料收集。
您也可以使用 VSPerfCmd.exe/mark 選項,將程式碼剖析標記插入資料檔案。/mark 命令會加入識別項、時間戳記和選擇性使用者定義的文字字串。標記可用來篩選程式碼剖析工具報告和資料檢視中的資料。下面的 VSPerfCmd 選項配對會啟動和停止資料收集。在不同的命令列上指定每個選項。您可以多次開啟或關閉資料收集。
結束程式碼剖析工作階段
若要結束程式碼剖析工作階段,程式碼剖析工具不能正在收集資料。您可以藉由停止服務或叫用 VSPerfCmd /detach 選項,停止從使用並行方法進行程式碼剖析的應用程式中收集資料。接著叫用 VSPerfCmd /shutdown 選項,關閉程式碼剖析工具並關閉程式碼剖析資料檔案。VSPerfClrEnv /globaloff 命令會清除程式碼剖析環境變數,但是系統組態在電腦重新啟動後才會重設。
若要結束程式碼剖析工作階段
請執行下列其中一個動作,從目標應用程式中斷連結程式碼剖析工具。
停止服務。
-或-
輸入 VSPerfCmd /detach.
關閉程式碼剖析工具。型別:
VSPerfCmd 關機