美文网首页
3.3.垃圾回收算法(大概思想)(gold_axe)

3.3.垃圾回收算法(大概思想)(gold_axe)

作者: 胖达_4b7e | 来源:发表于2020-03-22 13:47 被阅读0次

分代

2个根据以前的经验 得到的假说

  • 1.大多数对象活不久
  • 2.活了很久的 很难死

这样就把对象分为2类了,
朝生夕死的对象,是一类, 回收比较划算, 优先回收
猜想会活很久的, 万不得已, 才回收

可以用不同的垃圾回收算法,放就不要放在一起, 分开放
前者叫新生代, 后者到老年代
假说

  • 3.跨带的引用, 很少

因此, 真的可以只收新生代,
至于老年代对新生代对象的引用,这样处理:

在新生代上 有一个记忆集, 记录 老年代 哪些区域有对新生代对象的引用
新生代垃圾回收时, 会把记忆集里面记录的老年代哪些有对新生代引用的小块内存, 加入 GC Roots

这样, 虽然增加了 维护 记忆集 的日常成本, 但是比要扫描整个老年代 是划算的

标记-清除

1.标记要回收的
2.回收被标记的

缺点:
空间碎片, 导致后来的大对象会放不下
用复制的 内存分配器 内存访问器 解决, 如
分区空闲分配链表, 不要求连续的存储空间
但是内存的访问是最频繁的用户程序操作, 这样影响程序吞吐量,代价太大

标记-整理

适合新生代, 存活率低的

Eden :S1:S2 8:1:1
仅仅10%空间为了放复制的存活对象会被闲置

如果万一不够放 分配担保:
先借从老年代一点空间, 下次还,就是对象放到老年代去

标记-整理

适合老年代, 存活的很多的
移动式的

代价:
移动存活对象来整理时,
要更新 引用这些对象的地方,
必须STW

相关文章

  • 3.3.垃圾回收算法(大概思想)(gold_axe)

    分代 2个根据以前的经验 得到的假说 1.大多数对象活不久 2.活了很久的 很难死 这样就把对象分为2类了,朝生夕...

  • JVM - 垃圾回收算法

    JVM - 垃圾回收算法 这里只介绍垃圾回收算法的思想,不关注具体的算法细节垃圾回收算法发展已经有很长的历史 问题...

  • JVM垃圾回收

    GC垃圾回收流程 垃圾收集算法 垃圾回收算法 引用类型 垃圾回收的时机 1.垃圾收集算法 (1).引用计数算法含义...

  • JVM垃圾回收算法

    Java基础:JVM垃圾回收算法 [toc] 参考:Java基础:JVM垃圾回收算法图解JVM垃圾回收算法 总结:...

  • 垃圾回收算法、回收机制与总结 ---JVM

    垃圾回收算法、回收机制与总结 ---JVM 一、垃圾回收算法 1.标记清除 标记--清除算法将垃圾回收分为两个阶段...

  • JVM调优之垃圾定位、垃圾回收算法、垃圾处理器对比

    谈垃圾回收器之前,要先讲讲垃圾回收算法,以及JVM对垃圾的认定策略,JVM垃圾回收器是垃圾回收算法的具体实现,了解...

  • JVM(七)垃圾收集器

    1. 垃圾收集器概述 1.1 垃圾回收器与垃圾回收算法 垃圾回收算法分类两类,第一类算法判断对象生死算法,如引用计...

  • 一文了解JVM全部垃圾回收器,从Serial到ZGC

    《对象搜索算法与回收算法》介绍了垃圾回收的基础算法,相当于垃圾回收的方法论。接下来就详细看看垃圾回收的具体实现。 ...

  • 一文了解JVM全部垃圾回收器,从Serial到ZGC

    《对象搜索算法与回收算法》介绍了垃圾回收的基础算法,相当于垃圾回收的方法论。接下来就详细看看垃圾回收的具体实现。 ...

  • JVM垃圾回收算法

    垃圾是指死掉的对象,其回收涉及回收算法和回收器。这篇文章只谈论垃圾回收算法。 1、标记-清除算法(Mark-Swe...

网友评论

      本文标题:3.3.垃圾回收算法(大概思想)(gold_axe)

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