共用方式為


HOW TO:使用命令列以程式碼剖析工具啟動獨立的 .NET Framework 應用程式以收集記憶體資料

本主題說明如何使用 Visual Studio 程式碼剖析工具命令列工具啟動 .NET Framework 獨立 (用戶端) 應用程式,以及收集記憶體資料。

程式碼剖析工作階段包含三個部分:

  • 使用程式碼剖析工具啟動應用程式。

  • 收集程式碼剖析資料。

  • 結束程式碼剖析工作階段。

注意事項注意事項

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

以程式碼剖析工具啟動應用程式

若要使用分析工具來啟動目標應用程式,請使用 VSPerfCmd.exe /start/launch 選項來初始化分析工具並啟動應用程式。 您可以在一個命令列上指定 /start/launch 及其個別選項。

您也可以加入 /globaloff 選項,在目標應用程式啟動時暫停資料收集。 接著使用 /globalon 開始收集資料。

若要使用程式碼剖析工具啟動應用程式

  1. 開啟 [命令提示字元] 視窗。

  2. 啟動程式碼剖析工具。 型別:

    **VSPerfCmd /start:sample /output:**OutputFile [Options]

    • /start:sample 選項會初始化此分析工具。

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

    下列任何選項都可以搭配 /start:sample 選項使用。

    選項

    說明

    /wincounter:WinCounterPath

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

    /automark:Interval

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

  3. 啟動目標應用程式。 輸入:

    VSPerfCmd /launch**:**appName /gc:{allocation|lifetime}[Options]

    • 需要 /gc**:**Keyword 選項才能收集 .NET Framework 記憶體資料。 關鍵字參數會指定要收集記憶體配置資料,或是同時收集記憶體配置和物件存留期資料。

      關鍵字

      說明

      allocation

      僅收集記憶體配置資料。

      lifetime

      同時收集記憶體配置和物件留存期資料。

    下列任何選項都可以搭配 /launch 選項使用。

    選項

    說明

    /args:Arguments

    指定字串,其中包含要傳遞至目標應用程式的命令列引數。

    /console

    在另一個視窗中啟動目標命令列應用程式。

    /events:Config

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

    /targetclr:Version

    如果有多個 Common Language Runtime (CLR) 版本載入到應用程式中,指定要進行程式碼剖析的 Runtime 版本。

控制資料收集

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

若要啟動和停止資料收集

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

    選項

    說明

    /globalon /globaloff

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

    /processon:PID processoff:PID

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

    /attach:PID /detach

    /attach 會開始收集 PID (處理序 ID) 所指定之處理序的資料。 /detach 會停止所有處理序的資料收集。

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

結束程式碼剖析工作階段

若要結束程式碼剖析工作階段,程式碼剖析工具必須從所有已進行程式碼剖析的處理序中斷連結,而且程式碼剖析工具必須明確地關閉。 您可以藉由關閉應用程式或呼叫 VSPerfCmd /detach 選項,從已使用取樣方法進行程式碼剖析的應用程式中斷連結分析工具。 接著呼叫 VSPerfCmd /shutdown 選項,關閉分析工具並關閉程式碼剖析資料檔案。 VSPerfClrEnv /off 命令會清除程式碼剖析環境變數。

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

  1. 請執行下列其中一個步驟,從目標應用程式中斷連結程式碼剖析工具:

    • 關閉目標應用程式。

      -或-

    • 輸入 VSPerfCmd /detach

  2. 關閉程式碼剖析工具。 輸入:

    VSPerfCmd /shutdown

請參閱

概念

獨立應用程式的命令列分析

其他資源

程式碼剖析工具 .NET 記憶體資料檢視