Linux上Java 1.7(45)中使用的默认GC是什么

aad*_*asu 3 java linux garbage-collection jvm

我们的JVM是Linux上的HotSpot -64位服务器(混合模式).

查看GC日志,似乎ParallelGC是默认值.为什么CMS不是默认的GC算法?是因为缺乏压实吗?但这也是parallelGC的情况.

我们注意到,即使堆达到75%的容量,也不会触发FullGC.什么时候为java 1.7中的默认GC启动了完整的GC?

Pet*_*rey 6

查看GC日志,似乎ParallelGC是默认值.

自从它被添加以来.

为什么CMS不是默认的GC算法?

ParallelGC是吞吐量最快,CPU使用率最低且使用最简单的方法.

是因为缺乏压实吗?

这是一个问题.

但这也是parallelGC的情况.

对于此GC而言,这不是一个问题,因为它进行了碎片整理.

我们注意到,即使堆达到75%的容量,也不会触发FullGC.什么时候为java 1.7中的默认GC启动了完整的GC?

当JVM无法分配内存时,即使您启用了CMS.(或者当System.gc()触发它进行完整收集时)CMS仅在运行时触发终身空间的主要集合.FullGC没有CMS.