调查.NET进程内存转储中的最大对象(支配者)

调查.NET进程内存转储中的最大对象(支配者),.net,debugging,memory-leaks,memory-dump,.net,Debugging,Memory Leaks,Memory Dump,我有一个.NET进程的内存转储,它是由DebugDiag在抛出System.OutOfMemoryException时创建的。现在我试图找出哪些对象的内存比预期的要多 可以使用windbg+sos打开此转储,执行简单的分析(如浅层对象大小统计)和调查特定对象,但这几乎什么都没有给我。我对一些东西感兴趣,比如最大的支配者,支配树,由特定对象保留的记忆等等。有什么工具吗?我想你应该使用!objsize命令。请参阅此有趣的链接:这只是问题的一部分。事实上,objsize douesn对我帮助不大,因为

我有一个.NET进程的内存转储,它是由DebugDiag在抛出System.OutOfMemoryException时创建的。现在我试图找出哪些对象的内存比预期的要多


可以使用windbg+sos打开此转储,执行简单的分析(如浅层对象大小统计)和调查特定对象,但这几乎什么都没有给我。我对一些东西感兴趣,比如最大的支配者,支配树,由特定对象保留的记忆等等。有什么工具吗?

我想你应该使用
!objsize
命令。请参阅此有趣的链接:

这只是问题的一部分。事实上,objsize douesn对我帮助不大,因为在我的案例中,有广泛可用的对象,它们也是从我调查的对象中引用的,我不想在计算第二个对象的大小时考虑第一个对象。