G1的一些概念

作者: 程序熊大 | 来源:发表于2018-01-06 17:06 被阅读612次

一、概念解释

  1. 分区(Region):G1将整个堆划分为同等大小的区块,一个分区可以是年轻代(Eden、Survivor)、也可以是老年代分区;G1是基于一个分区进行垃圾收集的。
  2. 对象的年龄(Object Aging):存活对象所经历过的年轻代收集的总次数;
  3. 浮动垃圾:少量死的对象在某次GC后可能还没被回收,这种死了的对象叫做floating garbage。
  4. CSet:一系列分区的集合,也是在垃圾收集过程中被回收的目标
  5. RSet:记录从其他分区指向当前分区的引用,本质上数据结构是一个hash table
  6. mutator线程:在垃圾收集器的术语中被称为Java应用线程
  7. SATB:Snapshot At the Beginning,是GC开始时活着的对象的一个快照,是G1 GC的理论基础
  8. 年轻代收集(young gc):CSet里全部都是年轻代分区的收集
  9. 混合收集(mixed gc):CSet里包括年轻代分区和一部分老年代分区的收集
  10. 混合收集周期:混合收集可能不止一个,多个混合收集连续发生就组合成一个混合收集周期;
  11. G1中的垃圾收集过程:年轻代收集和混合收集交替进行,背后有全局的并发标记周期在进行。当老年代分区占用的空间达到或超过IHOP值,就会触发并发标记周期。
  12. 并发周期
  • 初始标记(STW):标记处根集合可直达的对象;
  • 并发标记:递归扫描整个堆里的对象图,包括SATB中写栅栏记录的引用;
  • 重新标记(STW):处理所有剩下的SATB日志缓冲区和所有更新,也会在这里处理弱引用;
  • 清除(STW):识别所有空闲分区、整理堆分区,为混合收集识别出高效的老年代分区;RSet梳理

二、参数学习

  1. -XX:InitiatingHeapOccupancyPercent:在G1中,IHOP的值是老年代空间占Java堆总空间的比例
  2. -XX:G1MixedGCCountTarget:一个混合收集周期中包含多少次混合收集
  3. -XX:G1HeapWastePercent:堆浪费百分比,当G1发现可被回收的空间小于5%时,就不会再进行混合收集,也就是会结束当前的混合收集周期

相关文章

  • G1的一些概念

    一、概念解释 分区(Region):G1将整个堆划分为同等大小的区块,一个分区可以是年轻代(Eden、Surviv...

  • 2021 G1新作

    首先一些最基本的概念,可以参考我3年前写的G1 详解[https://www.jianshu.com/p/cc6b...

  • G1垃圾收集器,永久带和元数据区

    引用地址 G1垃圾收集器,永久带和元数据区 我们收到了一些围绕G1垃圾收集器和使用永久带的一些问题。当G1作为垃圾...

  • GC各算法分析

    算法的基础概念 G1的介绍 https://www.oracle.com/technical-resources/...

  • 每周阅读(9/19/2016)

    Java Hotspot G1 GC的一些关键技术关于G1 CDN的原理以及其中的一些技术CDN和DNS如何工作。...

  • G1 GC垃圾收集流程

    概念 从 GC 算法的角度,G1 选择的是复合算法,可以简化理解为: 在新生代,G1 采用的仍然是并行的复制算法,...

  • G1详情解读

    G1(Garbage First) 1. G1的由来 Garbage First 简称G1,是Java提出的最...

  • JVM源码分析系列

    JVM G1算法系列 G1垃圾收集器介绍 G1垃圾收集器之RSet G1垃圾收集器之SATB G1垃圾收集器之对象...

  • 编译原理系列之五 自底向上优先分析(1)-简单优先分析法

    简单优先分析法 1.基本概念 通过语法树来理解这三个概念更加简单: 文法G1[S]:S→ABA→bBA→AaB→a...

  • 路漫漫之 - jvm G1 垃圾回收器

    因为G1的堆内存划分和这不太一样。我就来详细的探讨下G1。G1收集器采用不同的方法来分配堆, G1 将内存分配为 ...

网友评论

    本文标题:G1的一些概念

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