【发布时间】:2017-05-15 06:52:54
【问题描述】:
我一直没能找到System.gc()推荐JVM做的GC类型。 Here,据说“System.gc() 方法......强制主要收集”,但 this 帖子暗示要求完整的 gc。
谁能澄清或指出说明这一点的文档?换句话说,请求的是major gc还是full gc?
【问题讨论】:
我一直没能找到System.gc()推荐JVM做的GC类型。 Here,据说“System.gc() 方法......强制主要收集”,但 this 帖子暗示要求完整的 gc。
谁能澄清或指出说明这一点的文档?换句话说,请求的是major gc还是full gc?
【问题讨论】:
这取决于您使用的 JVM。
假设您使用的是热点,则行为会根据传递给它的标志而有所不同。默认情况下,它会触发一个完全停止世界的 GC,这将在日志中显示为 gc 原因[Full GC (System.gc)]。使用DisableExplicitGC,它根本不会调用任何 GC。如果使用 G1 或 CMS,则 ExplicitGCInvokesConcurrent 将更改该行为以启动并发旧代收集。
主要和次要术语不再很有用,因为 GC 周期变得更加细微。
如有疑问,请启用 GC 日志记录并亲自查看。
【讨论】: