分享方式:


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

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

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

應該使用哪一種工具?

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

效能工具 描述 使用此工具的時機?
CPU 使用量 顯示 CPU 花費時間的位置。 • 開始對一般效能問題進行調查。
• 調查高伺服器 CPU 使用量。
• 調查 DevOps 案例,例如當訂單未通過零售網站時。
• 最佳化 CPU 使用量。
• 調查 API 呼叫中的延遲。
Flame Graph 在 CPU 使用量工具內檢視,提供呼叫樹狀結構的替代視覺效果。 調查 API 呼叫中的延遲
最忙碌路徑 在 CPU 使用量工具中檢視,其中顯示應用程式中大部分的 CPU 時間都花在何處。 調查 API 呼叫中的延遲
記憶體使用量 顯示應用程式的記憶體,以找出記憶體流失等問題。 • 最佳化記憶體使用量
• 調查 UI 凍結
• 調查可疑的記憶體流失 (機器碼)
.NET 追蹤配置 顯示配置 .NET 物件的位置,以及有關記憶體回收的資訊。 • 最佳化 .NET 記憶體使用量
• 分析記憶體回收
檢測 顯示確切的通話計數和通話時間。 • 您需要 CPU 使用率之類的工具,但您想知道確切的呼叫計數,以及根據實際經過時間函式所花費的時間。
• 您不妨查看封鎖的時間,例如等待鎖定所花費的時間。
• 備註:此工具需要更多額外負荷。
檔案 I/O 顯示您的檔案 I/O 作業,以及它們花費的時間,以及其處理的資料量。 調查 UI 凍結
效能提示 顯示與程式碼互動時,快速測量效能資訊。 偵錯時,您想要查看上一個步驟作業 (或中斷點) 到目前步驟或中斷點之間經過的時間。
事件檢視器 顯示 HTTP 要求、記錄訊息和例外狀況。 • 調查 API 呼叫中的延遲
• 調查遠端 Web 服務器上執行的緩慢應用程式
.NET Async 顯示 .NET 應用程式中的 async/await 使用量。 調查非同步程式碼的可疑效能問題。
.NET 計數器 .NET 計數器的即時報告。 • 開始對一般效能問題進行調查。
• 您想要 .NET 計數器型計量的追蹤記錄,例如每秒的例外狀況、記憶體回收及 CPU 使用率。
Database 顯示資料庫查詢的效能。 調查使用 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 追蹤配置
檢測
檔案 I/O
效能提示
事件檢視器
.NET Async
.NET 計數器 是 (僅限.NET Core/5+ ) 是 (僅限 ASP.NET 核心)
Database 是 (僅限.NET Core/5+ ) 是 (僅限 ASP.NET 核心)
GPU 使用量
應用程式時間軸 是 (XAML)
效能總管
IntelliTrace 僅限 .NET 與 Visual Studio Enterprise 僅限 .NET 與 Visual Studio Enterprise 僅限 .NET 與 Visual Studio Enterprise

Linux 支援哪些工具?

Linux 支援下列工具作為目標平台和 Windows:

  • CPU 使用率
  • .NET Object Allocation 追蹤
  • .NET Async
  • .NET 計數器
  • 事件檢視器
  • Database

了解如何使用分析工具

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