需要解释的关于G1的并行全GC
2022-09-03 12:39:59
作为简化的解释 - 垃圾回收器有两种可能的收集类型,“增量”和“完整”。增量收集是两者中更好的一种,因为它会经常做一些工作。完全收集通常更具破坏性,因为它需要更长的时间,并且通常必须在运行时停止整个程序的执行。
因此,大多数现代GC(包括G1)通常会尝试确保在正常情况下,增量收集就足够了,并且永远不需要完整的集合。但是,如果不同代系的大量对象以不可预测的方式符合垃圾回收的条件,则有时完整的GC可能是不可避免的。
目前,G1 全集合实现只有单线程。这就是JEP的用武之地 - 它旨在并行化它,这样当一个完整的GC确实发生时,它在可以支持并行执行的系统上会更快。