共用方式為


HOW TO:使用命令列將程式碼剖析工具附加至 ASP.NET Web 應用程式以收集並行資料

本主題說明如何使用 Visual Studio 程式碼剖析工具命令列工具將分析工具附加至 ASP.NET 應用程式,以及收集處理序和執行緒並行資料。

程式碼剖析工具的命令列工具位於 Visual Studio 安裝目錄的 \Team Tools\Performance Tools 子目錄中。 在 64 位元電腦上,64 位元和 32 位元版本的工具都可以使用。 若要在命令提示字元中使用程式碼剖析工具,必須將工具路徑加入至 [命令提示字元] 視窗的 PATH 環境變數,或將它加入至命令本身。 如需詳細資訊,請參閱指定程式碼剖析工具命令列工具的路徑

注意事項注意事項

在 Web 應用程式中,只有支援 /start:concurrency,resourceonly 選項, 而不支援使用 /start:concurrency/start:concurrency,threadonly 選項收集執行緒活動及視覺化資料。

若要收集 ASP.NET 應用程式的效能資料,您必須初始化適當的環境變數,並重新啟動裝載 ASP.NET 應用程式的電腦,以設定 Web 伺服器進行程式碼剖析。

接著將程式碼剖析工具附加至裝載網站的 ASP.NET 背景工作處理序。 當程式碼剖析工具附加至應用程式時,您可以暫停和繼續資料收集。 若要結束程式碼剖析工作階段,程式碼剖析工具必須不再附加至應用程式,而且程式碼剖析工具必須明確地關閉。 在大部分情況下,您應在工作階段結束時清除程式碼剖析環境變數。

附加程式碼剖析工具

若要將程式碼剖析工具附加至 ASP.NET 應用程式

  1. 在 [命令提示字元] 視窗中輸入下列命令,初始化程式碼剖析環境變數:

    VSPerfClrEnv /globalsampleon [/samplelineoff]

    • /globalsampleon 會啟用收集並行資料。

    • /samplelineoff 會停用將收集的資料指派到特定原始碼程式行。 已指定這個選項時,資料只會指派給函式。

  2. 重新啟動電腦。

  3. 輸入下列命令啟動程式碼剖析工具:

    VSPerfCmd **/start:concurrency,ResourceOnly /output:**OutputFile [Options]

    • /start 選項會初始化分析工具以收集資源爭用資料。

    • /output**:**OutputFile 選項必須搭配 /start 使用。 OutputFile 指定程式碼剖析資料 (.vsp) 檔案的名稱和位置。

    您可以使用下表中的任何選項搭配 /start 選項。

    選項

    說明

    /user:[Domain\]UserName

    指定將被授權存取程式碼剖析工具之帳戶的選擇性網域和使用者名稱。

    /crosssession

    對其他登入工作階段中的處理序啟用程式碼剖析。

    /wincounter:WinCounterPath

    指定程式碼剖析期間要收集的 Windows 效能計數器。

    /automark:Interval

    僅能與 /wincounter 搭配使用。 指定 Windows 效能計數器收集事件之間的毫秒數。 預設值為 500。

    /events:Config

    指定程式碼剖析期間要收集的 Windows 事件追蹤 (ETW) 事件。 ETW 事件是在不同的 (.etl) 檔案中收集的。

  4. 以一般方式啟動 ASP.NET 應用程式。

  5. 透過輸入下列命令的方式,將程式碼剖析工具附加至 ASP.NET 背景工作處理序:**VSPerfCmd /attach:PID [/targetclr:**Version]

    • PID 會指定 ASP.NET 背景工作處理序的 ID 或名稱。 您可以在 [Windows 工作管理員] 中檢視所有執行中處理序的處理序 ID。

    • 如果有多個 Common Language Runtime (CLR) 版本載入到應用程式中,則 /targetclr**:**Version 會指定要進行程式碼剖析的 Runtime 版本。 這個參數是一個選擇性項目。

控制資料收集

當應用程式正在執行時,您可以使用 VSPerfCmd.exe 選項啟動及停止將資料寫入檔案,以控制資料收集。 您可以透過資料收集的控制,收集程式執行中特定組件的資料,例如應用程式的開始與結束。

若要啟動和停止資料收集

  • 下表中的 VSPerfCmd 選項配對會啟動和停止資料收集。 在不同的命令列上指定每個選項。 您可以多次開啟或關閉資料收集。

    選項

    說明

    /globalon /globaloff

    啟動 (/globalon) 或停止 (/globaloff) 所有處理序的資料收集。

    /processon:PID processoff:PID

    針對處理序 ID (PID) 所指定的處理序,啟動 (/processon) 或停止 (/processoff) 資料收集。

    /attach:{PID|ProcName} /detach[:{PID|ProcName}]

    /attach 會開始針對處理序 ID (PID) 或處理序名稱 (ProcName) 指定的處理序來收集資料。 /detach 會停止對指定的處理序收集資料,如果沒有指定處理序,則停止所有處理序的資料收集。

  • 您也可以使用 VSPerfCmd.exe /mark 選項,將程式碼剖析標記插入資料檔案。 /mark 命令會加入識別項、時間戳記和選擇性使用者定義的文字字串。 標記可用來篩選程式碼剖析工具報告和資料檢視中的資料。

結束程式碼剖析工作階段

若要結束程式碼剖析工作階段,程式碼剖析工具不能正在收集資料。 您可以藉由重新啟動 ASP.NET 背景工作處理序或叫用 VSPerfCmd /detach 選項,停止從使用並行方法進行程式碼剖析的應用程式中收集資料。 接著叫用 VSPerfCmd /shutdown 選項,關閉程式碼剖析工具並關閉程式碼剖析資料檔案。 VSPerfClrEnv /globaloff 命令會清除程式碼剖析環境變數,但是系統組態在電腦重新啟動後才會重設。

若要結束程式碼剖析工作階段

  1. 透過關閉程式碼剖析工具或在命令提示字元中輸入下列命令的方式,中斷程式碼剖析工具與目標應用程式的連結:

    VSPerfCmd /detach

  2. 在命令提示字元上輸入下列命令,關閉程式碼剖析工具:

    VSPerfCmd /shutdown

  3. (選擇項) 依照下列步驟清除程式碼剖析環境變數:

    1. 在命令提示字元中輸入下列命令:

      VSPerfCmd /globaloff

    2. 重新啟動電腦。

請參閱

概念

ASP.NET Web 應用程式的命令列分析

其他資源

使用 VSPerfASPNETCmd 快速進行網站程式碼剖析