美文网首页
Day 10垃圾收集器

Day 10垃圾收集器

作者: 小周爱吃瓜 | 来源:发表于2022-03-18 22:14 被阅读0次
    Screen Shot 2022-03-18 at 9.59.52 PM.png
    • 垃圾算法:

    1.标记清除
    找出内存中需要回收的对象,并且将其标记出来。
    所有的对象都会被扫描一遍,比较耗时。

    Screen Shot 2022-03-18 at 10.02.30 PM.png

    缺点:碎片多,不利于以后大对象的分配。没有连续空间的时候不得不提前触发一次gc.

    1. 标记复制(空间换时间)

    2. 标记整理
      复制的是存活的对象,所以如果对象过多的话就比较耗费性能。

    3. 分代

    Young: 复制算法
    Old:清除或者整理

    垃圾收集器:

    Screen Shot 2022-03-18 at 10.06.57 PM.png
    1. Serial 单线程收集器
    2. cms 老年代追回停顿时间的收集器,缺点是容易产生浮动垃圾
    3. ParNew Serial的可以理解成多线程版本
    4. serial old 老年代
    5. g1

    G1将堆内存分成不同的区域然后并发的对其进行回收.

    G1 --- 看这里
    减少内存碎片
    可预测的停顿时间,化整为0,可以区域化的进行扫描,不用全局扫描
    高吞吐量
    取代了CMS,没碎片,停顿时间变短,吞吐量变高.

    Screen Shot 2022-02-06 at 10.15.21 PM.png

    G1: 不一定要是物理上的连续,只要逻辑上连续即可,零碎的区域可以指向同一块地址,整理成同一片内存区域,形成连续的内存区域。
    复制算法能够减少内存碎片.

    Screen Shot 2022-03-18 at 10.10.46 PM.png
    • 初始标记: 应用线程暂停
      并发标记: 提升标记效率
      重新标记:修改并发标记因并发标记产生的垃圾
      并发清理: 清除不可达的内存空间.

    相关文章

      网友评论

          本文标题:Day 10垃圾收集器

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