【发布时间】:2014-10-26 21:54:31
【问题描述】:
我一直在阅读有关 .NET CLR 内存性能计数器的信息
http://msdn.microsoft.com/en-us/library/x2tyfybc(v=vs.110).aspx
许多计数器都有以下警告:
This counter is updated at the end of a garbage collection, not at each allocation.
我发现了一个应用程序的内存泄漏,并检查了所有堆上的第 0 代堆大小、第 1 代、# 个字节,它们显示为 0。这可以信任吗?如何区分以下两种情况?
- 尚未进行垃圾回收
- 我的应用没有任何 gen 0,1 etc 分配 ?
【问题讨论】:
-
GC 根本没有运行确实是内存泄漏的一个很好的理由。很难编写这样的代码,您必须分配大量非托管内存,例如位图或 COM 对象。抛出一个 GC.Collect() 调用并看看。
标签: c# .net memory-leaks garbage-collection