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 以及 Windows:
- CPU 使用量
- .NET 物件配置追蹤
- .NET Async
- .NET 計數器
- 事件查看器
- 資料庫
下列文章和部落格文章提供詳細資訊,可協助您瞭解如何有效地使用 Visual Studio 效能工具。