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

          通過上一篇文章一些截圖,相信朋友們已經基本知道了Profiler的使用方法,現在,如何程序中的方法很多,例如2000個,那么通過上面的方法來查看就相當的痛苦了。怎么辦呢?

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

           

          20120409212740.png

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

           

          20120409212810.png

           

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

           

          20120409212854.png

           

           

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

           

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

           

          20120409212940.png

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

           

          20120409213130.png

          此時,如果我們查看“histogram”,就會發現數據非常的少,如下:

           

          20120409213147.png

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

           

          20120409213215.png

           

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

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

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

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

          導航

          統計

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 富阳市| 临猗县| 巨鹿县| 安泽县| 密山市| 嘉荫县| 永定县| 博罗县| 江门市| 江北区| 广宁县| 长丰县| 册亨县| 南平市| 陵川县| 阳朔县| 安阳县| 宁晋县| 南溪县| 虞城县| 油尖旺区| 呈贡县| 柳江县| 墨江| 资兴市| 留坝县| 唐山市| 禹城市| 改则县| 灵台县| 兴城市| 康平县| 南陵县| 缙云县| 吉林市| 唐海县| 凤庆县| 淅川县| 平乡县| 成都市| 富民县|