找出C#垃圾收集器回收了多少对象

时间:2010-09-24 09:23:07

标签: c# garbage-collection

我有兴趣了解在运行以下代码后垃圾回收器回收了多少对象。

if (ObjectsOutstanding > GCThreshold) {
    System.GC.Collect();
}

2 个答案:

答案 0 :(得分:2)

为您自己的自定义类型执行此操作的一种简单方法是在终结器中增加和跟踪某些计数器。

e.g。

public class MyCustomType
{
    public static int NumFinalizersCalled;

    ~MyCustomType()
    {
        Interlocked.Increment(ref NumFinalizersCalled);
    }
}

答案 1 :(得分:0)

在Visual Studio调试器中,您可以使用即时窗口中的SOS library。有几种GC方法可以为您提供所需的信息。我不知道这是不是你想要的,但它是一个起点。