我想在.Net 2.0上使用CLR Profiles之类的东西来查看在任何给定时间(ASP.Net工作进程的)哪些对象在堆中占用更多空间。
但是,CLR Profiler 只允许我启动一个应用程序,而不是附加到现有的应用程序。我认为这是因为它也跟踪分配和 GC,但我对此不是很感兴趣。我想要一些东西,它可以对堆的当前状态进行快照,并向我展示那里有什么,每种类型的对象有多少,以及每种对象类型总共使用了多少字节。
有任何想法吗?
cdb -p
.loadby sos mscorwks
!TraverseHeap heap.txt
qd
.Net Memory Profiler正是您所需要的。它不是免费的,但有试用版。实际上,我通过试用来发现我们上一个项目的漏洞。一个显着的特点是:
通过收集和比较 .NET 内存的快照轻松识别内存泄漏
我想这就是你要找的。