垃圾收集操作

时间:2009-01-27 13:43:35

标签: c# java garbage-collection

有人可以解释一下垃圾收集是如何运作的吗?

(我正在使用C#和Java)。

6 个答案:

答案 0 :(得分:8)

答案 1 :(得分:6)

垃圾收集背后的基本思想是你不必关心内存管理。 Garbage Collectod所做的是定期检查对象引用并找到不再使用的对象(不再引用)来回收它们的内存并压缩另一个。 垃圾收集器使用各种算法来执行他们的工作,并且它们在从一个语言到另一个语言的某些细节上有所不同。 维基百科为您提供了一个很好的starting point。 如果您正在寻找有关各种垃圾收集器(Java,.NET,..)的实际实现的更多深入信息,您可以查看herehere或搜索谷歌以获取更多信息。

答案 2 :(得分:3)

试用这本书Garbage Collection: Algorithms for Automatic Dynamic Memory Management。它不会有更新的东西,但它会让你在路上。

答案 3 :(得分:1)

Perfmon为GC相关性能提供了许多计数器......

答案 4 :(得分:0)

答案 5 :(得分:0)

我认为您需要知道垃圾收集器是一个在您的程序上运行的线程,释放了引用使其无法访问的对象所占用的内存。您还需要知道无法预测int GC运行的时刻,您可以打电话给System.gc() 提出建议 GC要运行但不要让它运行 ,JVM会做出这个决定。

如果你有: Object objectReference = null;

objectReference引用的对象是GC诱饵。 “隔离岛”的主题以及finalize()方法如何运作是有趣的主题。我建议快速谷歌搜索两者。