.NET性能分析最佳實踐之:如何找出使用過多內(nèi)存的.NET代碼(進階篇)

          通過上一篇文章一些截圖,相信朋友們已經(jīng)基本知道了Profiler的使用方法,現(xiàn)在,如何程序中的方法很多,例如2000個,那么通過上面的方法來查看就相當(dāng)?shù)耐纯嗔?。怎么辦呢?

          一個比較不錯的方法就是將信息導(dǎo)出成為報表的信息,然后在excel中進行分析。操作方法如下:

           

          20120409212740.png

          一旦上面的按鈕點擊之后,所有的調(diào)用樹就會被顯示出來,還沒有將信息保存為csv格式,如下:

           

          20120409212810.png

           

          保存為了csv之后,我們通過excel打開,就可以進行分析了,如下:

           

          20120409212854.png

           

           

                 除了采用上面的方法使用Profiler之外,我們還可以在代碼中使用Profiler的功能。如果我們知道了哪些方法需要跟蹤,我們可以在代碼中開啟Profiler。

           

          首先,我們要在自己的項目中引用“CLRProfilerControl.dll”,然后可以寫如下的代碼:

           

          20120409212940.png

                 這樣寫完之后呢,我們就可以運行profiler來啟動我們的程序。這里要注意,我們必須禁用“profile active”,因為我們已經(jīng)運行我們的代碼運行profiler的檢查跟蹤功能,如下:

           

          20120409213130.png

          此時,如果我們查看“histogram”,就會發(fā)現(xiàn)數(shù)據(jù)非常的少,如下:

           

          20120409213147.png

                 如果我們查看“allocation graph(內(nèi)存分配圖)”,此時,我們就會看到一個非常干凈的界面了。和之前一樣,我們還是要點擊“everything”來看所有的方法的占用的內(nèi)存,如下:

           

          20120409213215.png

           

          到這里,Profiler的使用就介紹完了,我們總結(jié)一下吧:

          1.  
            1. Profiler可以用找出類,方法以及程序集占用內(nèi)存的情況。
            2. 不能用在已經(jīng)運行的上線環(huán)境中。
            3. 我們可以使用histogram查看內(nèi)存的分配情況,通過call graph查看每個方法占用的內(nèi)存。
            4. 我們可以通過代碼的方式更加有針對性的對某些方法進行查看。

          posted on 2012-04-18 17:35 SkyDream 閱讀(455) 評論(0)  編輯  收藏 所屬分類: CLR Profiler

          <2012年4月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 武宣县| 五华县| 务川| 临猗县| 大丰市| 嘉峪关市| 台南市| 岳西县| 同德县| 宣威市| 达日县| 苗栗市| 分宜县| 黑水县| 玉树县| 鄂托克旗| 汤阴县| 安国市| 泰州市| 阿坝县| 景泰县| 曲阜市| 鄂州市| 长丰县| 乌拉特前旗| 凉山| 大荔县| 若羌县| 贺兰县| 美姑县| 威海市| 承德县| 沁阳市| 满城县| 涿州市| 郑州市| 西吉县| 平陆县| 洛宁县| 县级市| 温泉县|