11個Visual Studio程式碼效能分析工具
軟體開發中的效能優化對程式設計師來說是一個非常重要的問題。一個小問題可能成為一個大的系統的瓶頸。但是對於程式設計師來說,通過自身去優化程式碼是十分困難的。幸運的是,有一些非常棒的工具可以幫助程式設計師進行程式碼分析和效能測試,從而大大簡化程式設計師進行程式碼效能優化的過程。MSDN雜誌2011年7月份曾釋出主題為“.NET程式碼分析工具和技術”的那一期,讓廣大程式設計師收穫頗豐。四年過去之後,這些工具又進一步做出了很多改進,同時也出現了更多的選擇。本文對當前主流的一些Visual Studio程式碼效能分析工具進行簡單的梳理,希望對大家有所幫助。本文由黃立威、張天雷整理。
AMD CodeXL
2011年釋出的AMD CodeAnalyst Performance Analyzer 現在已經被AMD CodeXL所替代。AMD CodeXL的主要目的是幫助開發者更好利用CPU, GPU和APU的計算效能,具有強大的GPU除錯、CPU和GPU程式碼分析、及靜態的OpenCL核心效能分析等能力。
AMD提供了支援Windows 7、Windows 8和Linux系統的單機版CodeXL分析工具。在Visual Studio 2010,2012和2013上也有AMD CodeXL的擴充套件版,其在Visual Studio開發環境中整合了GPU和APU的除錯和分析能力。舊的AMD CodeAnalyst Performance Analyzer extension目前仍然可用。
JetBrains dotTrace
JetBrains dotTrace經過四年漫長的發展,現在已經是一個包含程式碼執行跟蹤工具和效能分析工具的套件。它包括dotTrace Performance和dotTrace Memory 兩個工具,dotTrace Performance用來分析程式碼效能,比如函式執行時間,呼叫次數,消耗時間比率等,dotTrace Memory一般用來分析記憶體佔用情況。你可以在本地和遠端系統中對程式碼進行跟蹤、取樣或逐行分析。dotTrace對微軟.NET框架的支援一直到4.5.2版本,也可用於分析Silverlight4或5的單機桌面應用程式、Web應用程式、Windows通訊基礎(WCF)服務等。新功能包括時間軸分析(timeline profiling)和SQL查詢分析。
dotTrace extension Visual Studio Gallery網頁提供了一個非常清晰,簡潔的產品概述。通過看完概述如果你對產品有興趣,可以到JetBrains網站決定下載或購買。
JetBrains目前提供有時間限制的免費試用版以及幾種許可選項,例如ReSharper Ultimate包,其中包括ReSharper,dotCover,dotTrace,dotMemory,以及ReSharper C + +,所有包只需要一個許可證。
RedGate ANTS
RedGate ANTS效能分析工具和ANTS記憶體分析工具 是另一組的商業工具,可用於分析.NET可執行檔案,ASP.NET應用程式,IIS中的Web服務,IIS Express, Web開發伺服器,SharePoint 2007或2010年套裝,Silverlight應用程式,Windows服務,和COM +應用程式等。
ANTS效能分析工具(圖1)可以幫助分析任何.NET支援的程式碼庫,以及HTTP請求,儲存IO,同時支援SQL伺服器,Oracle,MySQL,MariaDB,PostgreSQL的資料訪問.
圖1. Red Gate ANTS 效能分析工具
ANTS記憶體分析工具可以使.NET的記憶體分析更加簡單,ANTS記憶體分析工具可以用來查詢記憶體洩露,優化應用程式,從而使其具有較高的記憶體使用率,並能檢查程式碼的健康狀況,能分析任何.NET應用程式,包括ASP.NET網路應用程式。
兩個工具支援從.NET1.0版本到4.5版本的任何語言的框架,以及Visual Studio 2005、2008、2010、2012和2013。可以在RedGate網站上檢視試用版以及定價。同時也有一個免費的版本ANTS Profiler Visual Studio Add-in extension,讓你在Visual Studio上可以直接訪問效能分析工具和記憶體分析工具。
Telerik JustTrace
2013年,Telerik獲了EQATEC,因此EQATEC分析工具現在是Telerik JustTrace .NET記憶體和效能分析工具的一部分。JustTrace提供兩種模式的效能分析,輕量化分析的取樣分析工具和收集CLR事件進行更深入分析的跟蹤工具。它還具有捕獲 .NET例項分配快照的記憶體分析的功能。
JustTrace整合了Visual Studio 2013,2012,2010和2008,也可以作為一個單機版的分析工具。Telerik提供30天的試用期,同時JustTrace也可作為DevCraft工具套件的一部分。
Visual Studio質量和診斷中心
除了上述分析工具,Visual Studio本身也內建了優秀的分析和除錯工具,都放在 Visual Studio的質量與診斷中心。
質量和診斷中心除了包括熟悉的Visual Studio分析工具,還有一些新的工具,其功能包括JavaScript記憶體分析, HTML UI響應能力分析,和Windows應用商店應用的XAML UI響應能力分析,和能量消耗、CPU使用、記憶體使用情況分析等。此外,Visual Studio 2012中的JavaScript函式時間和效能嚮導也已經更新,包含在新的質量和診斷中心中。因為這些工具現在都可以在中心中獲得,所以可以在一個單獨的分析會話中執行多個工具,並獲得相互結合和交叉分析的結果。
你還可以在Visual Studio 2015的效能和診斷頁面執行分析工具。Visual Studio 2015中的一些除錯和診斷功能得到了增強,包括支援基於JavaScript的Apache Cordova專案,以及基於C # 的Xamarin和Android專案的跨平臺除錯
其他改進包括在“監視”視窗通過lambda表示式進行step,通過Visual Studio遠端工具執行、除錯和測試其他計算機上的程式,內建的HTTP流量資料的網路診斷等。
許多這些新工具與強大的Visual Studio 2015診斷工具偵錯程式視窗放在了一起,並組合了輸出視窗,IntelliTrace歷史資料,以及效能和診斷中心的工具。
其他的效能分析工具
除了以上介紹的程式碼效能分析工具,還存在其他的專業的程式碼效能分析工具,其中許多是由和你一樣的程式設計師所開發,並可供免費使用。
Clr Heap Allocation Analyzer extension是一個基於Roslyn的C #堆分配診斷分析工具,可以用於檢視清晰的分配,boxing分配,閉包捕獲等。您可以作為一個單機版的應用程式或作為Visual Studio內部的程式碼輔助工具執行該分析工具。
Visual Leak Detector for Visual C++是一個開源的Visual C++記憶體洩漏檢測系統,它與Visual Studio偵錯程式一起工作。最初由Dan Moulding開發,專案目前由Arkadiy shapkin維護。
Frans Bouma的ORM Profiler extension(圖2)讓你可以實時地深入實體框架資料訪問程式碼發現效能問題,並快速定位到它們。它具有線上、離線兩種產品分析模式,可以直接從分析結果導航到專案中的相關程式碼。
圖2 使用ORM Profiler進行實體框架資料訪問的除錯
為了檢查和優化專案中的靜態資源,Mads Kristensen的Image Optimizer extension 為解決方案資源管理器中的任何資料夾和圖示新增了右鍵選單,幫助自動優化資料夾中所有的PNG,GIF和JPEG檔案。
最後,還有 Xamarin Profiler,它是一個跨平臺開發框架。在這一框架內,開發 Android 和 iOS 應用可以不用轉到 Eclipse 或者額外購買 Mac 並使用 Xcode,而繼續在Visual Studio之中使用 C# 與 .NET框架進行。
本文簡單介紹了Visual Studio中當前比較流行的一些效能分析工具,事實上還有非常多的工具可供選擇。但對於程式設計師來說,最重要的是根據自身的程式設計習慣以及工程專案的特點做出適合自己的選擇。
相關文章
- 11 個 Visual Studio 程式碼效能分析工具
- Visual Studio程式碼去掉自動空格
- 使用Visual Studio分析dump
- Visual Studio 智慧程式碼外掛:CodeGeeX
- Visual Studio 11預覽: 新的程式語言功能
- 使用Visual Studio分析.NET Dump
- 一個好程式碼的工具:Video Studio AIIDEAI
- Visual Studio模板程式碼註釋小技巧分享
- Visual Studio使用Git進行程式碼版本管理Git行程
- GitHub原生AI程式碼生成工具Copilot,官方支援Visual Studio 2022GithubAI
- 11個原始碼優化和分析的Java工具原始碼優化Java
- Visual Studio Code好用的微軟程式碼編輯器微軟
- 微軟開發工具 Visual Studio 官網微軟
- AbsInt — 確保程式碼安全的靜態效能分析工具
- Visual Studio 快速分析 .NET Dump 檔案
- 將 Visual Studio .net 程式碼註釋 英文轉為中文
- 免費的visual studio智慧程式碼外掛——CodeGeeX
- Visual Studio 開發彙編程式
- 12個Visual Studio除錯效率技巧除錯
- Visual Studio Code 10個最佳主題
- 使用Visual Studio Code編寫和啟用ABAP程式碼 (上)
- visual studio連線linux編碼Linux
- 微軟適用於 Visual Studio 的 Edge 開發者工具微軟
- PHP程式碼效能監測工具PHP
- 效能最快的程式碼分析工具,Ruff 正在席捲 Python 圈!Python
- Visual Studio Code
- 使用 Visual Studio 2019 批量新增程式碼檔案頭
- 微軟程式碼編輯器Visual Studio Code Mac中文設定教程微軟Mac
- Visual Studio Code 程式碼顯示空格等空白符的方法
- 如何在Visual Studio中執行和除錯彙編程式碼?除錯
- 【譯】Visual Studio Enterprise 中的程式碼覆蓋率特性
- 程式碼分析工具小結
- 7個深度工作的Visual Studio 外掛
- Visual Studio Code 的 10 個超棒特性
- 【譯】Visual Studio 2022 - 17.8 的效能改進
- Sublime Text VS Visual Studio Code VS Atom 效能測試
- 【譯】Visual Studio 2022 - 17.10 效能增強
- 【譯】使用 Visual Studio 除錯外部原始碼除錯原始碼