.NET分配概要分析

时间:2010-04-23 08:56:23

标签: .net profiling memory-management

我需要一种方法来跟踪.NET应用程序中的所有分配,这些分配是在调试应用程序的过程中的一个步骤中发生的。我的意思是,当我在调试器中,单步执行代码时,我想看一下分配发生的一步。有工具或方法吗?我尝试了几个内存分析器,包括CLR分析器,JetBrains和.NET Memory Profiler 3.5,它们似乎都没有提供这种功能。

1 个答案:

答案 0 :(得分:0)

你可以像这样使用WinDBG

.load C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\SOS.dll
.logopen log.txt
bp mscorwks!FastAllocateObject "!DumpMT poi(@esp+4); g"
bp mscorwks!AllocateObject "!DumpMT poi(@esp+4); g"

这应该打破所有AllocateObject / FastAllocateObject并转储在log.txt中传递给这些函数的MethodTable ..随着分配对象数量的增加,它可能会变得很慢