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

时间:2014-05-07 17:32:13

标签: java linux garbage-collection jvm

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

查看GC日志,似乎ParallelGC是默认值。为什么CMS不是默认的GC算法?是因为缺乏压实吗?但是对于parallelGC也是如此。

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

1 个答案:

答案 0 :(得分:6)

  

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

自从它被添加以来。

  

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

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

  

是否由于缺乏压实?

这是一个问题。

  

但是对于parallelGC也是如此。

此GC不是碎片整理的问题。

  

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

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