下面通過(guò)圖文并茂的方式給大家介紹下,具體內(nèi)容如下:
軟件開(kāi)發(fā)中的性能優(yōu)化對(duì)程序員來(lái)說(shuō)是一個(gè)非常重要的問(wèn)題。一個(gè)小問(wèn)題可能成為一個(gè)大的系統(tǒng)的瓶頸。但是對(duì)于程序員來(lái)說(shuō),通過(guò)自身去優(yōu)化代碼是十分困難的。幸運(yùn)的是,有一些非常棒的工具可以幫助程序員進(jìn)行代碼分析和性能測(cè)試,從而大大簡(jiǎn)化程序員進(jìn)行代碼性能優(yōu)化的過(guò)程。MSDN雜志2011年7月份曾發(fā)布主題為“.NET代碼分析工具和技術(shù)”的那一期,讓廣大程序員收獲頗豐。四年過(guò)去之后,這些工具又進(jìn)一步做出了很多改進(jìn),同時(shí)也出現(xiàn)了更多的選擇。本文對(duì)當(dāng)前主流的一些Visual Studio代碼性能分析工具進(jìn)行簡(jiǎn)單的梳理。
AMD CodeXL
2011年發(fā)布的AMD CodeAnalyst Performance Analyzer 現(xiàn)在已經(jīng)被AMD CodeXL所替代。AMD CodeXL的主要目的是幫助開(kāi)發(fā)者更好利用CPU, GPU和APU的計(jì)算性能,具有強(qiáng)大的GPU調(diào)試、CPU和GPU代碼分析、及靜態(tài)的OpenCL內(nèi)核性能分析等能力。
AMD提供了支持Windows 7、Windows 8和Linux系統(tǒng)的單機(jī)版CodeXL分析工具。在Visual Studio 2010,2012和2013上也有AMD CodeXL的擴(kuò)展版,其在Visual Studio開(kāi)發(fā)環(huán)境中集成了GPU和APU的調(diào)試和分析能力。舊的AMD CodeAnalyst Performance Analyzer extension目前仍然可用。
JetBrains dotTrace
JetBrains dotTrace經(jīng)過(guò)四年漫長(zhǎng)的發(fā)展,現(xiàn)在已經(jīng)是一個(gè)包含代碼執(zhí)行跟蹤工具和性能分析工具的套件。它包括dotTrace Performance和dotTrace Memory 兩個(gè)工具,dotTrace Performance用來(lái)分析代碼性能,比如函數(shù)執(zhí)行時(shí)間,調(diào)用次數(shù),消耗時(shí)間比率等,dotTrace Memory一般用來(lái)分析內(nèi)存占用情況。你可以在本地和遠(yuǎn)程系統(tǒng)中對(duì)代碼進(jìn)行跟蹤、采樣或逐行分析。dotTrace對(duì)微軟.NET框架的支持一直到4.5.2版本,也可用于分析Silverlight4或5的單機(jī)桌面應(yīng)用程序、Web應(yīng)用程序、Windows通信基礎(chǔ)(WCF)服務(wù)等。新功能包括時(shí)間軸分析(timeline profiling)和SQL查詢(xún)分析。
dotTrace extension Visual Studio Gallery網(wǎng)頁(yè)提供了一個(gè)非常清晰,簡(jiǎn)潔的產(chǎn)品概述。通過(guò)看完概述如果你對(duì)產(chǎn)品有興趣,可以到JetBrains網(wǎng)站決定下載或購(gòu)買(mǎi)。
JetBrains目前提供有時(shí)間限制的免費(fèi)試用版以及幾種許可選項(xiàng),例如ReSharper Ultimate包,其中包括ReSharper,dotCover,dotTrace,dotMemory,以及ReSharper C + +,所有包只需要一個(gè)許可證。
RedGate ANTS
RedGate ANTS性能分析工具和ANTS內(nèi)存分析工具 是另一組的商業(yè)工具,可用于分析.NET可運(yùn)行文件,ASP.NET應(yīng)用程序,IIS中的Web服務(wù),IIS Express, Web開(kāi)發(fā)服務(wù)器,SharePoint 2007或2010年套裝,Silverlight應(yīng)用程序,Windows服務(wù),和COM +應(yīng)用程序等。
ANTS性能分析工具(圖1)可以幫助分析任何.NET支持的代碼庫(kù),以及HTTP請(qǐng)求,存儲(chǔ)IO,同時(shí)支持SQL服務(wù)器,Oracle,MySQL,MariaDB,PostgreSQL的數(shù)據(jù)訪問(wèn).
圖1. Red Gate ANTS 性能分析工具
ANTS內(nèi)存分析工具可以使.NET的內(nèi)存分析更加簡(jiǎn)單,ANTS內(nèi)存分析工具可以用來(lái)查找內(nèi)存泄露,優(yōu)化應(yīng)用程序,從而使其具有較高的內(nèi)存使用率,并能檢查代碼的健康狀況,能分析任何.NET應(yīng)用程序,包括ASP.NET網(wǎng)絡(luò)應(yīng)用程序。
兩個(gè)工具支持從.NET1.0版本到4.5版本的任何語(yǔ)言的框架,以及Visual Studio 2005、2008、2010、2012和2013??梢栽赗edGate網(wǎng)站上查看試用版以及定價(jià)。同時(shí)也有一個(gè)免費(fèi)的版本ANTS Profiler Visual Studio Add-in extension,讓你在Visual Studio上可以直接訪問(wèn)性能分析工具和內(nèi)存分析工具。
Telerik JustTrace
2013年,Telerik獲了EQATEC,因此EQATEC分析工具現(xiàn)在是Telerik JustTrace .NET內(nèi)存和性能分析工具的一部分。JustTrace提供兩種模式的性能分析,輕量化分析的采樣分析工具和收集CLR事件進(jìn)行更深入分析的跟蹤工具。它還具有捕獲 .NET實(shí)例分配快照的內(nèi)存分析的功能。
JustTrace集成了Visual Studio 2013,2012,2010和2008,也可以作為一個(gè)單機(jī)版的分析工具。Telerik提供30天的試用期,同時(shí)JustTrace也可作為DevCraft工具套件的一部分。
Visual Studio質(zhì)量和診斷中心
除了上述分析工具,Visual Studio本身也內(nèi)置了優(yōu)秀的分析和調(diào)試工具,都放在 Visual Studio的質(zhì)量與診斷中心。
質(zhì)量和診斷中心除了包括熟悉的Visual Studio分析工具,還有一些新的工具,其功能包括JavaScript內(nèi)存分析, HTML UI響應(yīng)能力分析,和Windows應(yīng)用商店應(yīng)用的XAML UI響應(yīng)能力分析,和能量消耗、CPU使用、內(nèi)存使用情況分析等。此外,Visual Studio 2012中的JavaScript函數(shù)時(shí)間和性能向?qū)б惨呀?jīng)更新,包含在新的質(zhì)量和診斷中心中。因?yàn)檫@些工具現(xiàn)在都可以在中心中獲得,所以可以在一個(gè)單獨(dú)的分析會(huì)話中運(yùn)行多個(gè)工具,并獲得相互結(jié)合和交叉分析的結(jié)果。
你還可以在Visual Studio 2015的性能和診斷頁(yè)面運(yùn)行分析工具。Visual Studio 2015中的一些調(diào)試和診斷功能得到了增強(qiáng),包括支持基于JavaScript的Apache Cordova項(xiàng)目,以及基于C # 的Xamarin和Android項(xiàng)目的跨平臺(tái)調(diào)試
其他改進(jìn)包括在“監(jiān)視”窗口通過(guò)lambda表達(dá)式進(jìn)行step,通過(guò)Visual Studio遠(yuǎn)程工具運(yùn)行、調(diào)試和測(cè)試其他計(jì)算機(jī)上的程序,內(nèi)置的HTTP流量數(shù)據(jù)的網(wǎng)絡(luò)診斷等。
許多這些新工具與強(qiáng)大的Visual Studio 2015診斷工具調(diào)試器窗口放在了一起,并組合了輸出窗口,IntelliTrace歷史數(shù)據(jù),以及性能和診斷中心的工具。
其他的性能分析工具
除了以上介紹的代碼性能分析工具,還存在其他的專(zhuān)業(yè)的代碼性能分析工具,其中許多是由和你一樣的程序員所開(kāi)發(fā),并可供免費(fèi)使用。
Clr Heap Allocation Analyzer extension是一個(gè)基于Roslyn的C #堆分配診斷分析工具,可以用于查看清晰的分配,boxing分配,閉包捕獲等。您可以作為一個(gè)單機(jī)版的應(yīng)用程序或作為Visual Studio內(nèi)部的代碼輔助工具運(yùn)行該分析工具。
Visual Leak Detector for Visual C++是一個(gè)開(kāi)源的Visual C++內(nèi)存泄漏檢測(cè)系統(tǒng),它與Visual Studio調(diào)試器一起工作。最初由Dan Moulding開(kāi)發(fā),項(xiàng)目目前由Arkadiy shapkin維護(hù)。
Frans Bouma的ORM Profiler extension(圖2)讓你可以實(shí)時(shí)地深入實(shí)體框架數(shù)據(jù)訪問(wèn)代碼發(fā)現(xiàn)性能問(wèn)題,并快速定位到它們。它具有在線、離線兩種產(chǎn)品分析模式,可以直接從分析結(jié)果導(dǎo)航到項(xiàng)目中的相關(guān)代碼。
圖2 使用ORM Profiler進(jìn)行實(shí)體框架數(shù)據(jù)訪問(wèn)的調(diào)試
為了檢查和優(yōu)化項(xiàng)目中的靜態(tài)資源,Mads Kristensen的Image Optimizer extension 為解決方案資源管理器中的任何文件夾和圖標(biāo)添加了右鍵菜單,幫助自動(dòng)優(yōu)化文件夾中所有的PNG,GIF和JPEG文件。
最后,還有 Xamarin Profiler,它是一個(gè)跨平臺(tái)開(kāi)發(fā)框架。在這一框架內(nèi),開(kāi)發(fā) Android 和 iOS 應(yīng)用可以不用轉(zhuǎn)到 Eclipse 或者額外購(gòu)買(mǎi) Mac 并使用 Xcode,而繼續(xù)在Visual Studio之中使用 C# 與 .NET框架進(jìn)行。
本文簡(jiǎn)單介紹了Visual Studio中當(dāng)前比較流行的一些性能分析工具,事實(shí)上還有非常多的工具可供選擇。但對(duì)于程序員來(lái)說(shuō),最重要的是根據(jù)自身的編程習(xí)慣以及工程項(xiàng)目的特點(diǎn)做出適合自己的選擇。
以上內(nèi)容比較長(zhǎng),希望大家能夠喜歡。
您可能感興趣的文章:- C++運(yùn)算符重載實(shí)例代碼詳解(調(diào)試環(huán)境 Visual Studio 2019)
- 使用 Visual Studio 的“代碼度量值”來(lái)改進(jìn)代碼質(zhì)量
- 代碼從windows下visual studio到andriod平臺(tái)遷移實(shí)現(xiàn)步驟
- 配置Visual Studio 以調(diào)試.net framework源代碼
- Visual Studio 中自定義代碼片段的方法