【转】.NET程序内存分析工具CLRProfiler的使用
大家都知道.net有一套自己的內(nèi)存(垃圾)回收機制,除非有一些數(shù)據(jù)(方法)長期占有內(nèi)存不隨著垃圾回收功能而釋放內(nèi)存,這樣就造成了我們經(jīng)常說的內(nèi)存泄露、內(nèi)存持續(xù)增長得不到釋放等問題導(dǎo)致APS.net網(wǎng)站或者C/S應(yīng)用程序的用戶無法正常使用。最終會導(dǎo)致用戶通過客服人員或者技術(shù)支持人員投訴公司的技術(shù)部門,形成一連串的未知的不良反映。
不管哪位性能測試人員,遇到這樣的問題都是摸不著頭腦,不知從何處下手。.net環(huán)境中不像JAVA有那么多的工具可以支撐,比如性能測試經(jīng)常用到的Jconsole、Jprofiler等工具,并且基于JAVA運行環(huán)境的在打印GC日志方面也很強大。對于.net平臺,微軟也提供的.net輔助工具CLR Profiler可以很好的幫助我們的性能測試人員以及研發(fā)人員,找到內(nèi)存沒有及時回收,占著內(nèi)存不釋放的方法(詳細到這個方法下面定義的數(shù)組或者其他變量)。
下載地址:http://search.microsoft.com/en-us/DownloadResults.aspx?q=clr%20profiler
可根據(jù)自己電腦.NET的版本下載相應(yīng)的CLR Profiler,我下載的是CLR Profiler for .NET Framework 4版本的。
下載后提示解壓縮,選擇要加壓到的目錄;然后進入D:\SoftWare\CLRProfiler4\CLRProfiler\Binaries目錄下選擇對應(yīng)操作系統(tǒng)64位或者32位的CLRProfiler.exe。
在說一下,CLRProfiler可以分析.net平臺開發(fā)的幾乎所有的產(chǎn)品,包括C/S應(yīng)用程序、服務(wù)和asp.net編寫的網(wǎng)站等。
我的環(huán)境是:IIS服務(wù)器(asp.net開發(fā)的站點)+MS sql
打開CLRProfiler界面,選中Profiling active、Allocation和Calls,【Start Application】是加載.net開發(fā)的exe程序的;【Start URL】是輸入被測頁面URL的;
我要在IE中測試asp.net開發(fā)的頁面,CLR Profiler首先要加載IIS所需要的環(huán)境變量,CLR Profiler然后提示你加載ASP.NET應(yīng)用程序和等待ASP.NET工作進程啟動。
在File菜單中點擊Profile ASP.NET
停止IIS服務(wù)可能要很長時間,需要耐心等待。最后提示可以測試頁面啦
“Waiting for ASP.NET to start common language runtime - this is thetime to load your test page”
點擊【Start URL】按鈕,輸入我們要測試的頁面URL,點擊OK,就會自動打開我們要檢查內(nèi)存有不釋放內(nèi)存的頁面,多在頁面中使用一會,以便CLR Profiler收集更多的數(shù)據(jù)。
當已完成頁面的運行,請點擊CLR Profiler窗口中的 【Kill ASP.NET】。然后CLR Profiler自動關(guān)閉IIS,移除環(huán)境變量,重啟IIS。
點擊【Allocation Graph】打開內(nèi)存分配視圖,在這個視圖當中我們可以看出堆棧是如何分別對象的
點擊【Objects by Address】按鈕將會顯示各種方法在內(nèi)存中占用的直方圖界面
可以通過選中那個視圖中的某一個柱形條,右擊show who allocated。點擊這個菜單項顯示關(guān)于所選分配的特定詳細內(nèi)容,而不是所有分配的
點擊[TimeLine]按鈕,在打開的圖片中可以清晰的看出各次回收時間和前后內(nèi)存占用量情況
在view菜單中,有很多沒有顯示的菜單。
點擊call tree 菜單,可以看到在不同線程下,所有方法占用內(nèi)存大小,被調(diào)用次數(shù)等信息
如果看不到圖片請查看我的另一篇文章:http://blog.csdn.net/wy3552128/article/details/8158938
- ?
總結(jié)
以上是生活随笔為你收集整理的【转】.NET程序内存分析工具CLRProfiler的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2022上半年Wi-Fi 6路由推荐:2
- 下一篇: 千元级亮机卡大战开始 Intel显卡驱动