如何:使用命令列將程式碼剖析工具附加到原生獨立應用程式並且收集並行資料
本主題說明如何使用 Visual Studio 程式碼剖析工具命令列工具,將分析工具附加至執行中的原生 (C/C++) 獨立應用程式,以及收集執行緒爭用資料。
注意事項 |
---|
程式碼剖析工具的命令列工具位於Visual Studio安裝目錄的 \Team Tools\Performance Tools 子目錄中。 在 64 位元電腦上,64 位元和 32 位元版本的工具都可以使用。若要使用程式碼剖析工具命令列工具,必須將工具路徑加入至 [命令提示字元] 視窗的 PATH 環境變數,或將它加入至命令本身。如需詳細資訊,請參閱指定程式碼剖析工具命令列工具的路徑。 |
當程式碼剖析工具附加至應用程式時,您可以暫停和繼續資料收集。若要結束程式碼剖析工作階段,程式碼剖析工具必須不再附加至應用程式,而且程式碼剖析工具必須明確地關閉。
將程式碼剖析工具附加至執行中的原生應用程式
若要將程式碼剖析工具附加至執行中的原生應用程式
在命令提示字元中輸入下列命令:
VSPerfCmd/start:concurrency
您可以使用下表中的任何選項搭配 /start:concurrency選項。
選項
描述
/user:[Domain\]Username
指定將被授權存取程式碼剖析工具之帳戶的選擇性網域和使用者名稱。
對其他登入工作階段中的處理序啟用程式碼剖析。
/wincounter:WinCounterPath
指定程式碼剖析期間要收集的 Windows 效能計數器。
/automark:Interval
僅能與 /wincounter 搭配使用。指定 Windows 效能計數器收集事件之間的毫秒數。預設值為 500。
/events:Config
指定程式碼剖析期間要收集的 Windows 事件追蹤 (ETW) 事件。ETW 事件是在不同的 (.etl) 檔案中收集的。
透過輸入下列命令的方式,將程式碼剖析工具附加至目標應用程式:
VSPerfCmd /attach:{PID|ProcName}
PID 指定目標應用程式的處理序 ID。您可以在 [Windows 工作管理員] 中檢視所有執行中處理序的處理序 ID。
控制資料收集
當目標應用程式正在執行時,您可以使用 VSPerfCmd.exe 選項,啟動及停止將資料寫入檔案,以控制資料收集。您可以透過資料收集的控制,收集程式執行中特定組件的資料,例如應用程式的開始與結束。
若要啟動和停止資料收集
下表中的選項配對會啟動和停止資料收集。在不同的命令列上指定每個選項。您可以多次開啟或關閉資料收集。
選項
描述
啟動 (/globalon) 或停止 (/globaloff) 所有處理序的資料收集。
/processon:PID/processoff:PID
針對處理序 ID (PID) 所指定的處理序,啟動 (/processon) 或停止 (/processoff) 資料收集。
/attach 會開始針對處理序 ID (PID) 或處理序名稱 (ProcName) 指定的處理序來收集資料。/detach 會停止對指定的處理序收集資料,如果沒有指定處理序,則停止所有處理序的資料收集。
結束程式碼剖析工作階段
若要結束程式碼剖析工作階段,程式碼剖析工具不能正在收集資料。您可以藉由關閉應用程式或叫用 VSPerfCmd /detach 選項,停止從使用取樣方法進行程式碼剖析的應用程式中收集資料。接著叫用 VSPerfCmd /shutdown 選項,關閉程式碼剖析工具並關閉程式碼剖析資料檔案。
若要結束程式碼剖析工作階段
透過關閉程式碼剖析工具或輸入下列命令的方式,中斷程式碼剖析工具與目標應用程式的連結:
VSPerfCmd /detach
輸入下列命令以關閉程式碼剖析工具:
VSPerfCmd /shutdown