System.gc()触发什么样的GC?

时间:2017-05-15 06:52:54

标签: garbage-collection jvm

我无法找到System.gc()建议JVM执行的GC类型。 Here,据说“System.gc()方法...强制主要收藏”,但this帖子意味着请求完整的gc。

任何人都可以澄清或指出拼写出来的文件吗?换句话说,它是要求的主要或完整的gc吗?

1 个答案:

答案 0 :(得分:3)

这取决于您正在使用的JVM。

假设您正在使用热点,则行为会因传递给它的标志而异。默认情况下,它会触发一个完全停止的GC,它会在日志中显示为gc导致[Full GC (System.gc)]。使用DisableExplicitGC时,它根本不会调用任何GC。如果使用G1或CMS,那么ExplicitGCInvokesConcurrent将改变该行为以启动并发旧的gen集合。

主要和次要术语不再有用,因为GC循环变得更加细致。

如果有疑问,请启用GC日志记录并亲自查看。