Visual Studio 性能探查器使用技巧,看這篇就足夠了

Visual Studio 提供了性能測量值和分析工具選擇。 某些工具(如“CPU 使用情況”和“內存使用情況”)可以在帶或不帶調試器的情況下運行,也可以在發佈版本或調試版本配置上運行 。 “應用程序時間線”等“性能探查器”工具可以在發佈版本或調試版本上運行 。 調試器集成工具(如“診斷工具窗口”和“事件”選項卡)僅在調試會話期間運行 。

 備註

可以在 Windows 7 及更高版本中使用非調試器性能工具。 運行調試器集成分析工具需要 Windows 8 或更高版本。

非調試器“性能探查器”和調試器集成“診斷工具”提供不同的信息和體驗 。 調試器集成工具顯示斷點和變量值。 非調試器工具提供更接近最終用戶體驗的結果。

幫助確定要使用的工具和結果,請考慮以下幾點:

  • 外部性能問題(如文件 I/O 或網絡響應能力問題)在調試器或非調試器工具中看起來並沒有太大差異。
  • 對於 CPU 密集型調用引起的問題,發佈版本和調試版本之間可能存在相當大的性能差異。 檢查發佈版本中是否存在該問題。
  • 如果僅在調試版本期間出現此問題,則可能不需要運行非調試器工具。 對於發佈版本問題,請確定調試器工具是否有助於進一步調查。
  • 發佈版本提供的優化包括:內聯函數調用和常量、修剪未使用的代碼路徑及以調試器無法使用的方式存儲變量。 調試器集成工具中的性能數字不太準確,因爲調試版本缺乏這些優化。
  • 調試器本身會更改性能時間,因爲它會執行截獲異常和模塊加載事件等必要的調試操作。
  • “性能探查器”工具中的發佈版本性能數字是最精準的 。 調試器集成的工具結果對於與其他調試相關的度量值進行比較非常有用。

對於 CPU 使用情況,可以使用命令行工具在遠程計算機上運行該工具。

在調試期間收集分析數據

通過選擇“調試” > “開始調試”或按 F5 在 Visual Studio 中開始調試時,默認情況下會出現“診斷工具”窗口 。 要手動打開該窗口,請選擇“調試” > “Windows” > “顯示診斷工具” 。 “診斷工具”窗口顯示有關事件、進程內存和 CPU 使用情況的信息 。

診斷工具

  • 使用工具欄中的“設置”圖標以選擇是查看“內存使用情況”還是“CPU 使用情況” 。

  • 在“設置”下拉列表中選擇“設置”,打開“診斷工具屬性頁”,其中包含更多選項 。

  • 如果運行的是 Visual Studio Enterprise,則可以在 Visual Studio“工具” > “選項” > “IntelliTrace”下啓用或禁用 IntelliTrace 。

當停止調試時,診斷會話結束。

“事件”選項卡

在調試會話期間,“診斷工具”窗口的“事件”選項卡列出了所發生的診斷事件 。 類別前綴:“斷點”、“文件”及其他,可以快速掃描列表以查找類別或跳過不關心的類別 。

使用“篩選器”下拉列表以通過選擇或取消選擇擇特定事件類別來篩選視圖內外的事件。

診斷事件篩選器

使用搜索框在事件列表中查找特定字符串。 以下是搜索匹配四個事件的字符串“name”的結果:

 

有關詳細信息,請參閱 搜索和篩選“診斷工具”窗口中的“事件”選項卡

在不進行調試的情況下收集分析數據

要在不進行調試的情況下收集性能數據,可以運行“性能探查器”工具 。 某些分析工具需要管理員權限才能運行。 啓動診斷會話時,你可以以管理員身份打開 Visual Studio,也可以以管理員身份運行工具。

  1. 在 Visual Studio 中打開一個項目後,將解決方案配置設置爲“發佈”,然後選擇“本地 Windows 調試器”(或“本地計算機”)作爲部署目標 。

  2. 選擇“調試” > “性能探查器”,或按 Alt+F2 。

  3. 在診斷啓動頁面上,選擇一個或多個要運行的工具。 將僅顯示適用於項目類型、操作系統和編程語言的工具。 選擇“顯示所有工具”也可查看此診斷會話禁用的工具 。 對於 C# UWP 應用,選項設置如下:

    選擇診斷工具

  4. 要啓動診斷會話,請選擇“開始” 。

    會話運行時,一些工具會在診斷工具頁面上顯示實時數據圖。

    在“性能和診斷中心”上收集數據

  5. 要結束診斷會話,請選擇“停止收集” 。

    分析的數據顯示在“報表”頁上 。

可以保存報表,並從診斷工具啓動頁面上的“最近打開的會話”列表中將其打開 。

打開保存的診斷會話文件

分析報告

診斷工具報告

分析報告
   
步驟 1 時間線顯示分析會話的長度、應用程序生命週期激活事件以及用戶標記。
步驟 2 你可以通過拖動藍色條選擇時間線的一個區域,將報告限制到這一部分時間線內。
步驟 3 每個診斷工具顯示一個或多個主圖。 如果診斷會話有多個工具,則將顯示其所有主圖。
步驟 4 可以摺疊和展開每個工具的各個圖形。
步驟 5 數據包含多個工具時,工具詳細信息將在選項卡下收集。
步驟 6 報表的下半部分顯示了每個工具的一個或多個詳細信息視圖。 可以通過選擇時間線的區域來篩選視圖。

在已安裝或正在運行的應用上運行診斷會話

除了從 Visual Studio 項目啓動應用以外,還可以在備用目標上運行診斷會話。 例如,你可能需要診斷有關從 Windows 應用商店安裝的應用的性能問題。 在“性能探查器”中,從“更改目標”下的下拉列表中進行選擇 。

選擇診斷工具分析目標

可以啓動已安裝的應用,也可以將診斷工具附加到已在運行的應用和進程。

如果選擇“可執行文件”作爲分析目標,則可以在本地或遠程計算機上輸入 .exe 的路徑 。 在任一情況下,.exe 都在本地運行 。 但是,我們建議通過在 Visual Studio 中打開解決方案來分析應用。

對於 UWP 應用,選擇“正在運行的應用”或“已安裝的應用”時,可以從發現指定部署目標上的應用的列表中選擇應用 。 此目標可以是本地或遠程計算機。 若要分析遠程計算機上的 UWP 應用,需要在“遠程連接”對話框中選擇“通用(未加密的協議)” 。

選擇要診斷的正在運行或已安裝的應用

 備註

對於需要遠程使用分析工具的其他方案,請參閱從命令行測量應用程序性能。 可以對 CPU 使用情況使用命令行工具,還可使用 .NET 對象分配工具。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章