亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

.NET性能調(diào)優(yōu)之一:ANTS Performance Profiler的使用介紹

 更新時(shí)間:2013年01月04日 09:33:02   作者:  
本系列文章主要會(huì)介紹一些.NET性能調(diào)優(yōu)的工具、Web性能優(yōu)化的規(guī)則(如YSlow)及方法等等內(nèi)容。成文前最不希望看到的就是園子里不間斷的“哪個(gè)語言好,哪個(gè)語言性能高”的爭論,不多說,真正的明白人都應(yīng)該知道這樣的爭論有沒有意義,希望我們能從實(shí)際性能優(yōu)化的角度去討論問題

在使用.NET進(jìn)行快速地上手與開發(fā)出應(yīng)用程序后,接下來面臨的問題可能就是程序性能調(diào)優(yōu)方面的問題,而性能調(diào)優(yōu)有時(shí)候會(huì)涉及方方面面的問題,如程序宿主系統(tǒng)、數(shù)據(jù)庫、網(wǎng)絡(luò)環(huán)境等等,而當(dāng)程序異常龐大復(fù)雜的時(shí)候,性能調(diào)優(yōu)將變得更加無從下手。

本系列文章主要會(huì)介紹一些.NET性能調(diào)優(yōu)的工具、Web性能優(yōu)化的規(guī)則(如YSlow)及方法等等內(nèi)容。成文前最不希望看到的就是園子里不間斷的“哪個(gè)語言好,哪個(gè)語言性能高”的爭論,不多說,真正的明白人都應(yīng)該知道這樣的爭論有沒有意義,希望我們能從實(shí)際性能優(yōu)化的角度去討論問題。

ANTS Performance Profiler的基本使用

ANTS Performance Profiler是RedGate旗下強(qiáng)大的性能調(diào)優(yōu)產(chǎn)品,官方產(chǎn)品頁面在這里。

先來看一下軟件的基本使用。

使用下面這段代碼進(jìn)行簡單的測試。

這是一個(gè)控制臺應(yīng)用程序,程序很簡單,先進(jìn)行10000次循環(huán),輸出和,再使用LINQ在list里找出1000的值輸出。

復(fù)制代碼 代碼如下:

static void Main()
{
var list = new List<int>();

var sum = 0;
for (var i = 0; i < 10000; i++)
{
sum += i;
list.Add(i);
}
Console.WriteLine(sum);

//find the value use linq: 1000
var result = list.Where(p => p.Equals(1000));
foreach (var i in result)
{
Console.WriteLine(i);
}
Console.ReadKey();
}

編譯程序后,啟動(dòng)ANTS Performance Profiler,會(huì)自動(dòng)彈出向?qū)ы撁?,在此頁面中,可以看到軟件支持多種.NET程序的性能監(jiān)控,如EXE、web、Windows Service等等。

而在Performace Counters中可以根據(jù)需要選擇多種計(jì)數(shù)器,IO、內(nèi)存分配、處理器等等。

針對測試DEMO,選擇編譯后的exe文件路徑,因?yàn)閯偛攀莇ebug編譯,所以選擇程序文件夾下\bin\Debug\里面的exe即可。

在Profiling Mode里可以選擇監(jiān)控的級別,基本就是監(jiān)控信息的多少與速度的權(quán)衡,默認(rèn)選擇“最詳細(xì)”即可。其他的詳細(xì)設(shè)置可以參考幫助文檔。

點(diǎn)擊“Start Profiling”,啟動(dòng)程序。

分析結(jié)果的查看與分析

軟件的基本工作原理是在.NET編譯出的IL代碼里放入鉤子用來記錄時(shí)間,然后通過直觀的界面顯示出哪部分代碼耗能最大。所以這是性能調(diào)優(yōu)最直接的方法,針對最耗時(shí)的代碼段進(jìn)行優(yōu)化即可。

點(diǎn)擊“Start Profiling”后啟動(dòng)之前編譯的程序,軟件開始執(zhí)行,如果是其他交互程序如winform、web等,操作完需要進(jìn)行性能調(diào)優(yōu)的功能后,在頂部的運(yùn)行時(shí)間軸里用鼠標(biāo)選定需要查看的時(shí)間段即可,一般有性能問題的時(shí)間段會(huì)出現(xiàn)一個(gè)波峰,選定那個(gè)時(shí)間段即可。

選定后可以立即在下面的結(jié)果窗口中看到最耗時(shí)的方法,比如上面的DEMO,當(dāng)然性能都消耗在了Main函數(shù)上。

軟件提供了多種度量值查看性能損耗,有百分比和多種時(shí)間格式,這里選定“秒”作為度量單位。

再選擇要查看的函數(shù),軟件強(qiáng)大之處就顯現(xiàn)出來了。

右側(cè)的紅色標(biāo)線,點(diǎn)擊可以快速定位到最耗能的代碼,顏色越深表示那段代碼越耗能。左側(cè)可以看到行號,此段代碼執(zhí)行的次數(shù)(Hit Count),平均執(zhí)行時(shí)間,總的執(zhí)行時(shí)間,當(dāng)然還可以同時(shí)看到代碼供分析使用。

至于DEMO里這段代碼為什么第一次執(zhí)行Console.WriteLine如此耗能,我想如果你認(rèn)真看了《CLR via C#》的第一章就應(yīng)該能知道答案了。

當(dāng)然你還可以點(diǎn)擊層次結(jié)構(gòu)圖標(biāo),查看更加直觀的性能損耗,就像下面這樣。

結(jié)語

ANTS Performance Profiler是我性能調(diào)優(yōu)時(shí)最先使用也是最喜歡使用的工具,所以放在了第一篇文章里來分享給大家,希望能給各位帶來點(diǎn)幫助。

它非常的直觀、強(qiáng)大,因?yàn)槭诸^復(fù)雜的項(xiàng)目不適合用來做DEMO,所以只是寫了段簡單的代碼作演示,它的強(qiáng)大之處還待你真正遇到性能問題使用它時(shí)去好好體會(huì)。

文章有所疏漏和要補(bǔ)充的,請留言一起討論,也請關(guān)注后續(xù)的相關(guān)文章。

如果文章對你有點(diǎn)幫助,推薦一下吧,謝謝 :)

相關(guān)文章

  • C# Lambda表達(dá)式用途深入理解

    C# Lambda表達(dá)式用途深入理解

    假如我們想要從一個(gè)整型數(shù)組中取出其中是奇數(shù)的選項(xiàng),其實(shí)現(xiàn)方式有很多,接下來通過三種方法的對比理解Lambda表達(dá)式的用途,需要了解的朋友可以參考下
    2012-12-12
  • .NET的DateTime函數(shù)獲取上個(gè)月的起始和截止時(shí)間的方法

    .NET的DateTime函數(shù)獲取上個(gè)月的起始和截止時(shí)間的方法

    這篇文章主要介紹了NET的DateTime函數(shù)獲取上個(gè)月的起始和截止時(shí)間的方法,可廣泛使用于報(bào)表中的時(shí)間自動(dòng)選擇功能,是非常實(shí)用的技巧,需要的朋友可以參考下
    2015-01-01
  • Web.Config文件配置之限制上傳文件大小和時(shí)間的屬性配置

    Web.Config文件配置之限制上傳文件大小和時(shí)間的屬性配置

    在Web.Config文件中配置限制上傳文件大小與時(shí)間字符串時(shí),是在httpRuntime httpRuntime節(jié)中完成的,需要設(shè)置以下2個(gè)屬性:maxRequestLength屬性與ExecutionTimeout屬性,感興趣的朋友可以了解下,或許對你有所幫助
    2013-02-02
  • VS2015 免費(fèi)插件Refactoring Essentials

    VS2015 免費(fèi)插件Refactoring Essentials

    Refactoring Essentials是一款用于代碼分析和重構(gòu)的開源免費(fèi)VS2015插件,其功能豐富強(qiáng)大,必然會(huì)成為類似Web Essentials這樣的必備插件。
    2015-07-07
  • VS2010制作第一個(gè)簡單網(wǎng)站

    VS2010制作第一個(gè)簡單網(wǎng)站

    這篇文章主要為大家介紹VS2010如何制作第一個(gè)簡單網(wǎng)站,和大家一起學(xué)習(xí) 動(dòng)態(tài)網(wǎng)站開發(fā)技術(shù),感興趣的小伙伴們可以參考一下
    2015-11-11
  • ASP.NET中CKEditor與CKFinder的配置使用

    ASP.NET中CKEditor與CKFinder的配置使用

    這篇文章主要介紹了ASP.NET中CKEditor與CKFinder的配置使用的相關(guān)資料,需要的朋友可以參考下
    2015-06-06
  • ASP.NET仿新浪微博下拉加載更多數(shù)據(jù)瀑布流效果

    ASP.NET仿新浪微博下拉加載更多數(shù)據(jù)瀑布流效果

    本篇文章介紹了如何實(shí)現(xiàn)下拉加載更多數(shù)據(jù)瀑布流的效果,這種效果最近很流行,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2015-07-07
  • asp.net中對象失去焦點(diǎn)時(shí)自動(dòng)提交數(shù)據(jù) V2

    asp.net中對象失去焦點(diǎn)時(shí)自動(dòng)提交數(shù)據(jù) V2

    一年多前,Insus.NET有寫過一篇 《對象失去焦點(diǎn)時(shí)自己動(dòng)提交數(shù)據(jù)》,那一篇是依賴Linkbutton來做隱藏提交。是否有不用依賴Linkbutton方法呢? 答案是肯定的
    2012-11-11
  • 理解ASP.NET Core 配置系統(tǒng)

    理解ASP.NET Core 配置系統(tǒng)

    本文主要介紹了理解ASP.NET Core 配置系統(tǒng),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • .Net使用Cancellation?Framework取消并行任務(wù)

    .Net使用Cancellation?Framework取消并行任務(wù)

    這篇文章介紹了.Net使用Cancellation?Framework取消并行任務(wù)的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06

最新評論