閱讀英文

共用方式為


我應該使用哪一種效能工具? (C#、Visual Basic、C++、F#)

Visual Studio 提供各種分析工具,可協助您根據應用程式類型診斷不同類型的應用程式效能問題。 在本文中,我們提供的資訊可協助您尋找適合您案例和應用程式類型的工具。

如需使用分析工具優化程序代碼的一般方法,請參閱 案例研究:將程式代碼優化的初學者指南。

我應該使用哪一個工具?

下表列出 Visual Studio 提供的不同工具,並提供選擇工具的常見案例。

效能工具 描述 使用此工具的時機?
CPU 使用量 顯示 CPU 花費時間的位置。 • 開始對一般效能問題進行調查。
• 調查高伺服器 CPU 使用量。
• 調查 DevOps 案例,例如當訂單未通過零售網站時。
• 優化CPU使用量。
• 調查 API 呼叫中的延遲。
火焰圖 在 CPU 使用量工具中檢視,該工具提供呼叫樹的替代視覺化。 調查 API 呼叫中的延遲
經常性路徑 在CPU使用量工具中檢視,其中顯示應用程式中大部分的CPU時間都花在何處。 調查 API 呼叫中的延遲
記憶體使用量 顯示應用程式的記憶體,以找出記憶體流失等問題。 • 優化記憶體使用量
• 調查介面卡死
• 調查可疑的記憶體洩漏(原生代碼)
.NET 物件配置 顯示配置 .NET 物件的位置,以及有關垃圾收集的資訊。 • 優化 .NET 記憶體使用量
• 分析垃圾收集
儀器 顯示確切的通話計數和通話時間。 • 您需要像 CPU 使用量這樣的工具,但希望根據實際時間精確計算函式的呼叫次數和所花費的時間。
• 您想要查看阻塞時間,例如等待鎖定時所花費的時間。
• 注意:此工具需要額外的開銷。
文件輸入/輸出 顯示您的檔案 I/O 作業,以及它們花費的時間,以及其處理的數據量。 調查 UI 凍結
PerfTips 顯示與程式代碼互動時,快速測量效能資訊。 偵錯時,您想要查看上一個步驟作業(或斷點)到目前步驟或斷點之間經過的時間。
事件查看器 顯示 HTTP 要求、記錄訊息和例外狀況。 • 調查 API 呼叫中的延遲
• 調查遠端 Web 伺服器上執行的緩慢應用程式
.NET 異步 顯示 .NET 應用程式中的異步/await 使用量。 調查異步程式代碼的可疑效能問題。
.NET 計數器 .NET 計數器的實時報告。 • 開始對一般效能問題進行調查。
• 您想要追蹤 .NET 計數器型計量,例如每秒的例外狀況、垃圾收集及 CPU 使用率。
資料庫 顯示資料庫查詢的效能。 調查使用 ADO.NET 或 Entity Framework Core 的資料庫查詢效能。
GPU 使用量 顯示 Direct3D 應用程式的高階硬體使用量。 檢查應用程式的效能是否為 CPU 系結或 GPU 系結。
應用程式時間軸 顯示 XAML 應用程式的 UI 效能。 調查 XAML 應用程式中的 UI 效能,例如轉譯畫面格所花費的時間。
IntelliTrace 調試程式工具可讓您記錄事件,並在各種執行點檢查應用程式狀態。 您希望工具在各種點檢查應用程式狀態,而不只是目前的應用程式狀態。

我的項目支援哪些工具?

下表列出 Visual Studio 提供的不同工具,以及您可以搭配使用的不同項目類型:

效能優化工具 .NET C/C++ UWP ASP.NET/ASP.NET Core
CPU 使用量 是的 是的 是的 是的
記憶體使用量 是的 是的 是的 是的
.NET 物件配置 是的 是的 是的
儀器 是的 是的 是的 是的
檔案輸入/輸出 是的 是的 是的 是的
PerfTips 是的 是的 是的 是的
事件查看器 是的 是的 是的 是的
.NET 非同步 是的 是的 是的
.NET 計數器 是 (僅限.NET Core/5+ ) 是 (僅限 ASP.NET 核心)
資料庫 是 (僅限.NET Core/5+ ) 是 (僅限 ASP.NET 核心)
GPU 使用量 是的 是的 是的
應用程式時間軸 是 (XAML) 是的
效能探勘器
IntelliTrace .NET 僅適用於 Visual Studio Enterprise 僅限 Visual Studio Enterprise 的 .NET 僅限與 Visual Studio Enterprise 搭配使用的 .NET。

Linux 支援哪些工具?

以下工具支援的目標平台包含 Linux 以及 Windows:

  • CPU 使用量
  • .NET 物件配置追蹤
  • .NET Async
  • .NET 計數器
  • 事件查看器
  • 資料庫

瞭解如何使用分析工具

下列文章和部落格文章提供詳細資訊,可協助您瞭解如何有效地使用 Visual Studio 效能工具。