当前位置: 首页 > 图灵资讯 > java面试题> JVM高频面试题-有了CMS,为什么还要引入G1?

JVM高频面试题-有了CMS,为什么还要引入G1?

来源:图灵教育
时间:2023-11-11 09:20:32
 

有了CMS,为什么还要引入G1?

优点:CMS最主要的优点在名字上已经体现出来——并发收集、低停顿。

缺点:CMS同样有三个明显的缺点。

  • Mark Sweep算法会导致内存碎片比较多
  • CMS的并发能力比较依赖于CPU资源,并发回收时垃圾收集线程可能会抢占用户线程的资源,导致用户程序性能下降。
  • 并发清除阶段,用户线程依然在运行,会产生所谓的理“浮动垃圾”(Floating Garbage),本次垃圾收集无法处理浮动垃圾,必须到下一次垃圾收集才能处理。如果浮动垃圾太多,会触发新的垃圾回收,导致性能降低。

G1主要解决了内存碎片过多的问题。