我们在我们的应用程序缓慢内存泄漏问题,我已经在试图analyize对泄漏的原因通过以下步骤已经过去了:
- 在GFlags在启用用户模式堆栈跟踪数据库
- 在WinDbg中,键入以下命令:堆-stat -h 125万 (其中125万是有泄漏堆的地址)比较多个转储后,我看到大小0xC的的内存块,随着时间的推移增加,可能是被泄漏的内存。
- 键入以下命令:堆-flt SC给那些分配和最终的UserPtr:
- !打字堆-p一些这些地址的-a地址总是显示下面的分配调用堆栈:
0:000>堆-p -a 10576ef8
address 10576ef8 found in
_HEAP @ 1250000
HEAP_ENTRY Size Prev Flags UserPtr UserSize - state
10576ed0 000a 0000 [03] 10576ef8 0000c - (busy)
mscoreei!CLRRuntimeInfoImpl::`vftable'
7c94b244 ntdll!RtlAllocateHeapSlowly+0x00000044
7c919c0c ntdll!RtlAllocateHeap+0x00000e64
603b14a4 mscoreei!UtilExecutionEngine::ClrHeapAlloc+0x00000014
603b14cb mscoreei!ClrHeapAlloc+0x00000023
603b14f7 mscoreei!ClrAllocInProcessHeapBootstrap+0x0000002e
603b1614 mscoreei!operator new[]+0x0000002b
603d402b +0x0000005f
603d5142 mscoreei!GetThunkUseState+0x00000025
603d6fe8 mscoreei!_CorDllMain+0x00000056
79015012 mscoree!ShellShim__CorDllMain+0x000000ad
7c90118a ntdll!LdrpCallInitRoutine+0x00000014
7c919a6d ntdll!LdrpInitializeThread+0x000000c0
7c9198e6 ntdll!_LdrpInitialize+0x00000219
7c90e457 ntdll!KiUserApcDispatcher+0x00000007
这看起来像线程初始化调用堆栈,但我需要知道的比这更多。 什么是下一个步骤,你会建议,以把手指在对泄漏的确切原因做。