我想知道在Java中触发完整垃圾回收的确切情况。
明显的情况包括:
- 老年代用尽
- 永久代用尽
- 调用System.gc()
其他什么情况会导致完整的垃圾回收呢?特别是:
- 幸存者区没有足够的空闲空间从伊甸园复制对象。
- 新生代的小型集合不能应对新对象的分配速率(不知道如何处理)。
我正在运行Sun Java 1.6,使用并发标记-清除和ParNew作为新生代。
我想知道在Java中触发完整垃圾回收的确切情况。
明显的情况包括:
其他什么情况会导致完整的垃圾回收呢?特别是:
我正在运行Sun Java 1.6,使用并发标记-清除和ParNew作为新生代。
System.gc()
。(不要忘记,甚至有可能一个GC算法没有“完整收集”的概念 - 这听起来可能有些牵强,但我在我们的应用程序上还没有看到G1收集器这样做。) - Andrzej Doyle