2011-02-07 3 views
2

메모리 누수를 디버깅하고 있습니다. 나는 그것을 재현 할 수는 없지만 프로그램이 특정 상황에서 실행될 때 약 60MB/hr의 일정한 누수가 발생합니다. 며칠 후, 힙이 ~ 2GB이고 WinDbg를 연결할 때 덤프를합니다.WinDbg - System.Web.Compilation.BuildManager의 ResultCache를보고

! heapdump -stat
1.2GB 상당의 Hashtables가 있습니다. 이것은 힙의 약 55 %입니다.

! dumpheap -Type System.Collections.Hashtable + KeyCollection
153,080 개의 Hashtable 인스턴스의 주소를 제공합니다.

! 이러한 인스턴스 중 일부 gcroot는 모두 Me.Logger 소유의 스레드가 소유하고 있음을 나타냅니다.

RSP:28f67e840:Root:0000000245edb7d0(Me.Logger)-> 
0000000245edb9d8(System.Threading.Thread)-> 
00000002459b9830(System.Runtime.Remoting.Contexts.Context)-> 
00000002459b9548(System.AppDomain)-> 
0000000245a1fed0(System.ResolveEventHandler)-> 
00000002259697a0(System.Web.Compilation.BuildManager)-> 
0000000245a20120(System.Web.Compilation.MemoryBuildResultCache)-> 
00000002459c2a48(System.Web.Caching.CacheMultiple)-> 
00000002459c2a70(System.Object[])-> 
00000002459c7e08(System.Web.Caching.CacheSingle)-> 
00000002459c9008(System.Web.Caching.CacheUsage)-> 
00000002459c9030(System.Object[])-> 
00000002459c9138(System.Web.Caching.UsageBucket)-> 
00000001b996fba8(System.Web.Caching.UsagePage[])-> 
00000001ae054388(System.Web.Caching.UsageEntry[])-> 
0000000251576590(System.Web.Caching.CacheEntry)-> 
00000002515761a0(System.Web.Mobile.MobileCapabilities)-> 
00000002515742c8(System.Collections.Hashtable)-> 
0000000251576548(System.Collections.Hashtable+KeyCollection) 

이 출력을 해석하는 방법을 모르겠습니다. System.Web.Compilation.BuildManager에는 막대한 캐시가있는 것 같습니다.

BuildManager, MobileCapabilities, ResolveEventHandler - 내 코드베이스에서이 중 하나를 사용하지 않습니다.

저는 WinDbg를 처음 사용합니다. 어떻게 디버깅을 더합니까?

해시 테이블에 무엇이 있는지 어떻게 볼 수 있습니까? (SoS v2.0.50727 아니요! DumpCollection). BuildManager가 빌드 한 것을 어떻게 볼 수 있습니까?

답변

0

SOSEX 확장 프로그램을 사용해 보셨습니까? http://www.stevestechspot.com/default.aspx. 이 ! DumpCollection (는 CLR의 V2와 함께 작동하는 경우 내가 테스트하지 않았습니다하지만) 당신이 필요로하는 명령 아마 다른 유용한 것들을 포함 SOS의 대부분의 기능을 가지고 .. 아마 또한

이 블로그 도울 수 있습니다. 그녀는 관리되는 메모리 누수 디버깅에 대한 꽤 좋은 정보를 가지고 있습니다.

http://blogs.msdn.com/b/tess/archive/2008/04/03/net-debugging-demos-lab-7-memory-leak-review.aspx?PageIndex=1