一款好用的CLR分析工具

一款好用的CLR分析工具(CLRProfiler)

起因:

今天在多线程抓取网页的时候出现了内存不断上涨的情况(从100M左右的内存占用到4G,直接导致程序崩溃,我也崩溃了),我大概查了一下代码没有发现哪个大资源被占用不能释放的情况,作为一个傻子程序员我想到了.NET是带有垃圾回收机制的,所以我在关键的代码下写了好多GC回收,但是并没有什么用。 所以这时候必须要借助工具的力量来追踪内存了。

工具:CLRProfiler

这是一款微软提供的CLR监控工具,貌似非常强大
官方下载链接:
http://search.microsoft.com/en-us/DownloadResults.aspx?q=clr%20profiler)
或者这个
https://download.csdn.net/download/huanxiao8512/11019225)

过程:

下载这款神奇之后立马百度下神器的用法,果然网友没有让我失望,图文并茂,哈哈,省了我好多时间!
启始界面
我这边是用的是【Show Heap now】
在这里插入图片描述

在这里插入图片描述通过这个界面的分析我能看到哪个个资源是一直在增长不能被释放的

最后我定位到了List<UriResource 这个集合上,由于这个集合是放置URL资源的里面包含了许多信息,但是没有做释放的动作所以导致内存溢出。加上集合资源释放代码,问题解决

第一次用博客记录下自己的成长过程,写的不好,希望对大家有帮助。

感谢Miser,Daniel.Zhao的支持:
https://www.cnblogs.com/zhaoblogs/archive/2012/11/02/2752015.html
http://www.cnblogs.com/Miser/archive/2009/01/13/1374567.html

猜你喜欢

转载自blog.csdn.net/huanxiao8512/article/details/88551140