我们的JVM是Linux上的HotSpot -64位服务器(混合模式)。
查看GC日志,似乎ParallelGC是默认值。为什么CMS不是默认的GC算法?是因为缺乏压实吗?但是对于parallelGC也是如此。
我们注意到即使堆容量达到75%,也不会触发FullGC。什么时候为java 1.7中的默认GC启动了完整的GC?
答案 0 :(得分:6)
查看GC日志,似乎ParallelGC是默认值。
自从它被添加以来。
为什么CMS不是默认的GC算法?
ParallelGC是吞吐量最快,CPU使用率最低且使用最简单的方法。
是否由于缺乏压实?
这是一个问题。
但是对于parallelGC也是如此。
此GC不是碎片整理的问题。
我们注意到即使堆容量达到75%,也不会触发FullGC。什么时候为java 1.7中的默认GC启动了完整的GC?
当JVM无法分配内存时,即使您启用了CMS。 (或者当System.gc()触发它进行完整收集时)CMS仅在运行时触发终身空间的主要集合。 FullGC没有CMS。