我應該使用哪一種效能工具? (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 支援下列工具作為目標平台和 Windows:
- CPU 使用率
- .NET Object Allocation 追蹤
- .NET Async
- .NET 計數器
- 事件檢視器
- Database
了解如何使用分析工具
下列文章和部落格文章提供詳細資訊,可協助您了解如何有效地使用 Visual Studio 效能工具。
相關內容
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應