通过性能计数器确定.net应用程序是否存在内存溢出
转载自:https://mitch-wheat.blogspot.jp/2010/11/determine-if-your-net-application-has.html
Run Perfmon.exe and add these counters:
- Process / Private bytes
- .NET CLR Memory / # bytes in all heaps
- .NET CLR LocksAndThreads / # of current logical threads
Run your application for a representative length of time and exercise its functionality.
1.第一种情况(非托管内存溢出):
If Private bytes is increasing but # bytes in all heaps is not, then unmanaged memory is leaking.
2.第二种情况(托管内存溢出):
If both both are increasing, then managed memory is leaking.
3.第三种情况(线程栈溢出):
If the # of current logical threads is increasing beyond what you expect, then thread stacks are leaking.
4.第四种情况(线程栈溢出):
If Private Bytes is periodically jumping in 1MB increments with a corresponding increase in # of current logical Threads, a thread stack leak is the likely cause.