是否有任何好的、免费的工具来分析C#中内存的使用情况?
详细信息:
我有一个可视化项目,它使用相当大的集合。我想检查这个项目的哪些部分--在数据处理方面,还是在可视化方面--使用大部分内存,这样我就可以优化它了。
我知道,在计算集合的大小时,情况非常简单,我可以自己做。但是也有一些元素,我不能这么容易地估计内存的使用情况。
内存使用量相当大,例如处理大小为35 MB的文件--我的程序使用的内存略多于250 MB。
发布于 2010-04-13 11:22:35
我已经成功地使用了RedGate的蚂蚁轮廓仪。这也是值得一读的布拉德·艾布拉姆斯博客,他有谈到了剖析内存
发布于 2015-12-14 15:38:06
我很惊讶没有人提到微软的免费CLR剖面仪!
直到最近我才知道这个工具。我有一个错误,使我的程序不断分配越来越多的内存。CLR可以精确定位程序中的内存分配“热点”。
在安装分析器后的15-20分钟内,我确定了对泄漏负责的代码行。
基本上,它对您的代码进行了测试,并使用一些分析方法运行它(这大大降低了代码的速度,10x-100倍是我认为的官方数据)。
在一定时间内运行一定的工作负载,然后可以看到代码中分配了多少内存(以及释放了多少内存,保留了多少内存等等)。
查看它在:https://clrprofiler.codeplex.com/
此外,以下是关于如何使用该工具的教程:http://geekswithblogs.net/robp/archive/2009/03/13/speedy-c-part-4-using---and-understanding---clr.aspx
发布于 2010-04-13 11:25:54
JetBrains DotTrace也不错。我同时使用了RedGate和JetBrains产品,它们在识别瓶颈和泄漏方面都做得很好。
https://stackoverflow.com/questions/2629034
复制相似问题