美文网首页
常见的垃圾回收算法

常见的垃圾回收算法

作者: 糯米团子123 | 来源:发表于2022-09-16 15:55 被阅读0次
    1. 标记-清除
      1.1 首先标记所有需要回收的对象
      1.2 标记完成后,统一回收掉被标记的对象

      缺点:内存不连续,产生大量碎片

      适用场景:小部分对象需要回收的场景,如:老年代回收,老年代存活对象一般比需要回收的对象多。


      标记-清除算法.png
    2. 复制
      2.1 将内存分为两部分,每次只使用其中一半
      2.2 从使用的一半(上半部分)中找到存活的对象复制到另一半(下半部分)(顺序复制)
      2.3 回收上半部分所有内存
      2.4 在使用则从下半部分开始使用

      优缺点:无碎片 内存连续,但是只使用一半内存,浪费空间。存活对象较多的情况下复制对象耗费时间。

      适用场景:只有少量对象存活的场景,减少对象复制。


      复制算法.png
    3. 标记-整理(标记-压缩)
      3.1 标记可回收和存活对象
      3.2 将存活对象复制到可回收对象中
      3.3 清楚存活对象边界外的所有对象

      优缺点:内存连续,无碎片,不浪费空间。但是移动对象时更加耗时。

      适用场景:内存吃紧又要避免空间碎片的场景。老年代想要避免空间碎片通常使用标记整理法。


      标记-整理.png
    4. 分代垃圾回收算法
      见此篇文章:https://www.jianshu.com/p/e71d22e79050

    相关文章

      网友评论

          本文标题:常见的垃圾回收算法

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