自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

開發(fā) 架構 后端
ANTS Performance Profiler是我性能調優(yōu)時最先使用也是最喜歡使用的工具,所以放在了第一篇文章里來分享給大家,希望能給各位帶來點幫助。

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

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

 

ANTS Performance Profiler的基本使用

ANTS Performance Profiler是RedGate旗下強大的性能調優(yōu)產品,官方產品頁面在這里。

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

使用下面這段代碼進行簡單的測試。

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

  1. static void Main()  
  2.  {  
  3.      var list = new List<int>();  
  4.    
  5.      var sum = 0;  
  6.      for (var i = 0; i < 10000; i++)  
  7.      {  
  8.          sum += i;  
  9.          list.Add(i);  
  10.      }  
  11.      Console.WriteLine(sum);  
  12.    
  13.      //find the value use linq: 1000  
  14.      var result = list.Where(p => p.Equals(1000));  
  15.      foreach (var i in result)  
  16.      {  
  17.          Console.WriteLine(i);  
  18.      }  
  19.      Console.ReadKey();  
  20.  } 

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

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

針對測試DEMO,選擇編譯后的exe文件路徑,因為剛才是debug編譯,所以選擇程序文件夾下\bin\Debug\里面的exe即可。

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

點擊“Start Profiling”,啟動程序。

分析結果的查看與分析

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

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

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

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

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

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

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

當然你還可以點擊層次結構圖標,查看更加直觀的性能損耗,就像下面這樣。

這樣的層次結構圖還有一個好處就是可以看到.NET Framework的內部實現(xiàn)。

當進行一些決策,比如是用原生的功能還是第三方組件時,這個功能會變得非常好用,因為通過它能比較直觀的地看到內部實現(xiàn)的性能瓶頸在哪里。

結語

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

它非常的直觀、強大,因為手頭復雜的項目不適合用來做DEMO,所以只是寫了段簡單的代碼作演示,它的強大之處還待你真正遇到性能問題使用它時去好好體會。

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

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

原文鏈接:.NET性能調優(yōu)之一:ANTS Performance Profiler的使用

責任編輯:林師授 來源: 博客園
相關推薦

2011-03-10 14:40:54

LAMPMysql

2017-07-21 08:55:13

TomcatJVM容器

2010-07-19 09:39:53

SQL Server

2012-06-20 11:05:47

性能調優(yōu)攻略

2016-03-25 09:59:38

性能調優(yōu)LinuxMySQL

2021-03-04 08:39:21

SparkRDD調優(yōu)

2011-02-15 09:31:56

ASP.NET

2019-11-01 08:49:07

JVM監(jiān)控性能

2011-05-20 15:02:01

Oracle性能調優(yōu)

2011-11-14 10:28:23

2020-11-30 11:40:35

NginxLinux性能調優(yōu)

2011-03-18 11:21:48

2014-12-01 11:30:06

PostgreSQL

2024-12-04 15:49:29

2012-06-21 09:43:45

2013-02-28 10:15:14

Ubuntu性能調優(yōu)故障排查

2021-11-07 23:49:19

SQL數(shù)據(jù)庫工具

2022-09-14 22:58:58

Push 推薦Java 開發(fā)vivo

2019-02-19 10:25:28

JVM性能工具

2011-09-09 15:49:19

AIX操作系統(tǒng)JAVA
點贊
收藏

51CTO技術棧公眾號