美文网首页
GC各算法分析

GC各算法分析

作者: zzj0990 | 来源:发表于2020-12-26 21:18 被阅读0次

算法的基础概念

G1的介绍

  1. https://www.oracle.com/technical-resources/articles/java/g1gc.html
  • Card table(jvm的优化)
    由于做YGC时,需要扫描整个OLD区,效率非常低,所以JVM设计了CardTable, 如果一个OLD区CardTable中有对象指向Y区,就将它设为Dirty,下次扫描时,只需要扫描Dirty Card在结构上,Card Table用BitMap来实现


    屏幕快照 2020-12-25 下午2.55.15.png

    caed table 是上图中所有的card(是分页的)的集合,使用BitMap进行标记,BitMap中的每一bit位与card一一对应。

  • CSet


    屏幕快照 2020-12-25 下午5.14.22.png
  1. 收集的是那些card
  • RSet


    屏幕快照 2020-12-25 下午5.32.18.png

    1.是三色标记实现的关键

  1. ZGC没有这个引用(使用的是颜色指针 使用其中的3位进行标记)
  • 拓展 -> 阿里的多租户jvm
  1. 每租户单空间
    将jvm分割为好多的独立的空间,分配给某个租户使用
  2. session base gc
    以web app, session为单位相关的对象,一旦session 消失了,则将与之相关的对象进行gc,更高效
  • 新老年代的比例
  1. 5% ~ 60%
  2. 一般不需要手工指定
  3. 也不要手工指定,因为这是G1预测停顿时间的基准。动态的调整 自动的进行优化
  • 逻辑分代(4个)
  1. 伊甸区、幸存区、老年区、大对象区


    屏幕快照 2020-12-25 下午5.53.28.png

    上图的次数是由4位bit指定的(栈指针中 待确认)

  2. 大对象
    超过单个region的50%
    或跨多个region


    屏幕快照 2020-12-25 下午6.05.35.png
  • 触发GC条件


    屏幕快照 2020-12-25 下午6.06.35.png
  • 延伸
    如果G1产生FGC,你应该做什么?
  1. 扩内存
  2. 提高CPU性能(回收的快,业务逻辑产生对象的速度固定,垃圾回收越快,内存空间越大)
  3. 降低MixedGC触发的阈值,让MixedGC提早发生(默认是45%)
    MixedGC ~ CMS 流程很相似
    jdk10以前是串行的FGC 10以后是并行的,所以要尽量减少的FGC的发生

————————————————————
坐标帝都,白天上班族,晚上是知识的分享者
如果读完觉得有收获的话,欢迎点赞加关注

相关文章

  • GC各算法分析

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

  • JVM GC算法与GC执行流程

    JVM GC算法 可达分析算法 GC执行流程 https://www.jianshu.com/p/314272e6...

  • 23. java虚拟机总结-和OOM相关的 (六)

    垃圾回收算法 可达性分析法(根搜索算法,GC ROOTS) 从 GC Roots 向下追溯、搜索,会产生一个叫作 ...

  • JVM GC

    GC 概念 GC分类 引用计数法 可到达分析 GC内存回收算法 复制 标记清理 标记整理 参考文章 咱们从头到尾说...

  • GC Roots

    可达性分析算法 可达性分析算法是HOTSPOT VM采用的判断对象是否存活的算法 通过一系列称为“GC Roots...

  • chapter-4 GC算法与种类

    GC 算法与种类 ■ GC的概念■ GC算法• 引用计数法• 标记清除• 标记压缩• 复制算法■可触及性■ Sto...

  • 记录一次服务器宕机分析过程(2)-深入Lua GC

    继续接着上一篇文章记录一次服务器宕机分析过程(1)-排查问题分析宕机问题 Lua GC算法 Lua GC实现的是一...

  • Lua GC

    一、GC的原理及其算法设计 不同的语言,对GC算法的设计不同,常见的GC算法是引用计数和Mark-Sweep算法,...

  • GC算法基础

    英文原文:GC Algorithms: Basics译者:有孚译文地址:GC算法基础 在深入GC算法的实现细节之前...

  • jvm 垃圾回收三色标记

    java垃圾回收目前采用的算法是可达性标记算法,即基于gc root进行可达性分析。分析标记过程采用三色标记法。 ...

网友评论

      本文标题:GC各算法分析

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