美文网首页
G1和CMS的比较

G1和CMS的比较

作者: 小动乾坤 | 来源:发表于2024-03-09 07:05 被阅读0次

CMS收集器是获取最短回收停顿时间为目标的收集器,因为CMS工作时,GC工作线程与用户线程可以并发执行,以此来达到降低停顿时间的目的(只有初始标记和重新标记会STW)。但是CMS收集器对CPU资源非常敏感。在并发阶段,虽然不会导致用户线程停顿,但是会占用CPU资源而导致引用程序变慢,总吞吐量下降。

CMS仅作用于老年代,是基于标记清除算法,所以清理的过程中会有大量的空间碎片。

CMS收集器无法处理浮动垃圾,由于CMS并发清理阶段用户线程还在运行,伴随程序的运行自热会有新的垃圾不断产生,这一部分垃圾出现在标记过程之后,CMS无法在本次收集中处理它们,只好留待下一次GC时将其清理掉。

G1是一款面向服务端应用的垃圾收集器,适用于多核处理器、大内存容量的服务端系统。G1能充分利用CPU、多核环境下的硬件优势,使用多个CPU(CPU或者CPU核心)来缩短STW的停顿时间,它满足短时间停顿的同时达到一个高的吞吐量。

从JDK 9开始,G1成为默认的垃圾回收器。当应用有以下任何一种特性时非常适合用G1:Full GC持续时间太长或者太频繁;对象的创建速率和存活率变动很大;应用不希望停顿时间长(长于0.5s甚至1s)。

G1将空间划分成很多块(Region),然后他们各自进行回收。堆比较大的时候可以采用,采用复制算法,碎片化问题不严重。整体上看属于标记整理算法,局部(region之间)属于复制算法。

G1 需要记忆集来记录新生代和老年代之间的引用关系,这种数据结构在 G1 中需要占用大量的内存,可能达到整个堆内存容量的 20% 甚至更多。而且 G1 中维护记忆集的成本较高,带来了更高的执行负载,影响效率。所以 CMS 在小内存应用上的表现要优于 G1,而大内存应用上 G1 更有优势,大小内存的界限是6GB到8GB。(Card Table(CMS中)的结构是一个连续的byte[]数组,扫描Card Table的时间比扫描整个老年代的代价要小很多!G1也参照了这个思路,不过采用了一种新的数据结构 Remembered Set 简称Rset。RSet记录了其他Region中的对象引用本Region中对象的关系,属于points-into结构(谁引用了我的对象)。而Card Table则是一种points-out(我引用了谁的对象)的结构,每个Card 覆盖一定范围的Heap(一般为512Bytes)。G1的RSet是在Card Table的基础上实现的:每个Region会记录下别的Region有指向自己的指针,并标记这些指针分别在哪些Card的范围内。 这个RSet其实是一个Hash Table,Key是别的Region的起始地址,Value是一个集合,里面的元素是Card Table的Index。每个Region都有一个对应的Rset。)

相关文章

  • Java基础-JVM

    JVM的垃圾回收过程,以及相应的CMS和G1的算法。 CMS和G1的比较,以及G1的缺点,S0、S1要解决什么样的...

  • JVM 并发垃圾收集算法

    CMS 和 G1 算法 CMS GC (-XX:+UseConcMarkSweepGC) 并发标记扫描(Concu...

  • JVM CMS和G1执行过程比较

    CMS CMS(Concurrent Mark Sweep)收集器是一种以获取最短回收停顿时间为目标的收集器。由于...

  • CMS和G1

    根据不同分代的特点,收集器可能不同。有些收集器可以同时用于新生代和老年代,而有些时候,则需要分别为新生代或老年代选...

  • G1GC

    执行过程和CMS类似,都是 1、初始标记;2、并发标记;3、最终标记;4、筛选回收 什么情况使用G1运行CMS或者...

  • 关于G1垃圾收集器的疑问

    前段时间公司服务器由CMS切换成G1,众所周知,G1因为其特有的region模型,相比于CMS等上一代垃圾收集器,...

  • G1 gc 分析

    G1收集器的设计目标是取代CMS收集器,它同CMS相比,在以下方面表现的更出色: 内存碎片:G1是一个有整理内存过...

  • 问题

    cms和G1的异同 G1什么时候引发FullFC 说一个最熟悉的垃圾回收算法 吞吐量优先和响应时间优先的回收器有哪...

  • 常用jvm启动参数

    jdk8+G1现在看是个主流组合,cms确实配置太繁琐了,所以jdk后续已经弃用了cms主推G1和zgc这种不太需...

  • JVM G1和CMS

    不能衡量,就不能改进,所以是好与是坏,一切都是从如何评价衡量开始的。 停顿时间和吞吐量便是一切垃圾级收集器的评价准...

网友评论

      本文标题:G1和CMS的比较

      本文链接:https://www.haomeiwen.com/subject/ikwyzdtx.html