专栏首页cwl_JavaJVM性能调优-你不得不懂的G1收集器

JVM性能调优-你不得不懂的G1收集器

简介:G1垃圾收集器
是什么

G1是⼀款⾯向服务端应⽤的垃圾收集器

特点

G1 中每个 Region 都有⼀个与之对应的 Remembered Set,当进⾏内存回收时,在 GC 根节点的枚举范围中加⼊ Remembered Set 即可保证不对全堆扫描也不会有遗漏 检查Reference引⽤的对象是否处于不同的Region

G1 收集器的运作⼤致可划分为以下⼏个步骤
  • 初始标记(Initial Marking) --标记⼀下 GC Roots 能直接关联到的对象
  • 并发标记(Concurrent Marking)—从GC Root 开始对堆中对象进⾏可达性分析,找出存活的对象,这阶段耗时较⻓,但可与⽤户程序并发执⾏
  • 最终标记(Final Marking) —为了修正在并发标记期间因⽤户程序继续运作⽽导致标记产⽣变动的那⼀部分标记记录。虚拟机将这段时间对象变化记录在线程 Remembered Set Logs⾥⾯,最终标记阶段需要把 Remembered Set Logs的数据合并到 Remembered Set 中
  • 筛选回收(Live Data Counting and Evacuation)
G1的优势有哪些
  • 空间整合:基于“标记⼀整理”算法实现为主和Region之间采⽤复制算法实现的垃圾收集
  • 可预测的停顿:这是 G1 相对于 CMS 的另⼀⼤优势,降低停顿时间是 G1 和 CMS 共同的关注点,但 G1 除了追求低停顿外,还能建⽴可预测的停顿时间模型
  • 在 G1 之前的其他收集器进⾏收集的范围都是整个新⽣代或者⽼年代,⽽ G1 不再是这样。使⽤ G1 收集器时,Java 堆的内存布局就与其他收集器有很⼤差别,它将整个 Java 雄划分为多个⼤⼩相等的独⽴区域(Region),虽然还保留有新⽣代和⽼年代的概念,但新⽣代和⽼年代不再是物理隔髙的了,它们都是⼀部分 Region(不需要连续)的集合。
  • G1 收集器之所以能建⽴可预测的停顿时间模型,是因为它可以有计划地避免在整个 Java 堆中进⾏全区域的垃圾收集。G1 跟踪各个 Regions ⾥⾯的垃圾堆积的价值⼤⼩(回收所获得的空间⼤⼩以及回收所需时间的经验值),在后台维护⼀个优先列表,每次根据允许的收集时间,优先回收价值最⼤的 Region(这也就是 Garbage- Firsti 名称的来由)。这种使⽤Region 划分内存空间以及有优先级的区域回收⽅式,保证了 G1 收集器在有限的时间内可以获取尽可能⾼

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 快速学习-以太坊账户简介

    cwl_java
  • PHP-运算符

    cwl_java
  • 快速学习Git-Git的安装

    最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上跑。不过,慢慢地有人把它移植到了Windows上。现在,Git可以在L...

    cwl_java
  • JVM笔记-G1收集器概述

    Garbage First(简称 G1)收集器是垃圾收集器技术发展史上里程碑式的成果:它开创了「面向局部收集」的设计思路和「基于 Region」的内存布局形式。

    WriteOnRead
  • 算法细节系列(27):时间复杂度为何还能优化?

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.n...

    用户1147447
  • TRIE(3)

     搜索引擎现在一般都有关键词提示或者说是补全功能。就是当你在搜索框里输入一个关键词s时,搜索引擎会自动提示你一些频率比较高,同时前缀是s的关键词  这道...

    mathor
  • 每周一算:Move Zeros

    思路:创建一个临时数组nonZeroElements,遍历nums,将nums中非0元素赋值到nonZeroElements中,而后按顺序将nonZeroEle...

    五分钟学算法
  • 每天一算:Two Sum

    五分钟学算法
  • 数据结构-常用的查找算法

    本篇讲讲数据结构里面常用的几个查找算法,数据结构理论篇系列差不多接近尾声了,接下来会分享一些比较特殊的概念,比如KMP、郝夫曼树等等,讲完概念以后会进入刷题阶段...

    张俊红
  • 图解选择排序

    上面的算法的缺点:在每趟比较过程中,一旦发现某个元素比第1位的元素小,就交换它们,但这是没必要的,徒增了交换的次数 优化:选择排序的核心是,在每趟比较中,找到...

    CoderJed

扫码关注云+社区

领取腾讯云代金券