System.gc()会触发哪种类型的垃圾回收器?

3
我找不到System.gc()推荐JVM执行的GC类型。在这里,它说“System.gc()方法...强制进行major collections”,但是这篇文章暗示需要进行full gc。
请问有人能够澄清或指出明确说明这一点的文档吗?换句话说,请求的是major gc还是full gc?
1个回答

3
这取决于您使用的JVM版本。假设您正在使用热点(hotspot),则行为基于传递给它的标志而变化。默认情况下,它会触发完整的停止-全局垃圾回收,这将在日志中显示为gc cause [Full GC (System.gc)]。如果使用DisableExplicitGC,则根本不会调用任何GC。如果使用G1或CMS,则ExplicitGCInvokesConcurrent将改变该行为,以启动并发旧代收集。由于GC周期变得更加微妙,所以主要和次要术语不再很有用。如有疑问,请启用GC日志并自行查看。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接