美文网首页
GC原理以及实现方式

GC原理以及实现方式

作者: 就爱烫卷发 | 来源:发表于2022-11-28 15:23 被阅读0次
  • 原理
      内存空间的回收
  • 实现方式
      1.标记清除法(since 1960)
        image.png
       分为两个阶段
        - 标记阶段:标记出可以回收的对象。
        - 清除阶段:回收被标记的对象所占用的空间
    两个缺点 标记和清除的效率都不高,容易产生大量不连续的内存碎片,给后续大对象没有足够的连续的空间从而提前触发新的一次垃圾收集动作.
    垃圾算法都是在此基础上进行修改的
    2.复制算法(新生代比较好)
    只使用一半内存,要回收的时候把"活"着的拷贝过去,存活的少复制的时间少,存活的多复制的时间长.
      3.标记压缩算法
       新生代有比较好的复制算法,老年代存活率比较高,这样会有多的复制才做不合适,标记压缩算法是将存活的对象压缩到内存的一端,使他们紧凑的排序到一起,然后对边界以外的内存进行回收,结束后,已用和未用都再各自的一边.解决清除算法效率低和容易产生大量内存碎片的问题.
      4.引用计数法
        它的引用计数器就加 1 ,引用失效时就减 1 。当引用计数器中的值变为 0 ,则该对象
    就不能被使用,变成了垃圾。假如A类里面有B类 B类里面有A类,计数器就不能为0,就无法被回收 
      5.根搜索法(可达性分析)
      基本思想就是选定一些对象作为 GC Roots,以Roots为起点开始向下搜索,当一个对象不可达时,即证明了他可以被回收处理
      6.分代收集算法 (https://blog.csdn.net/en_joker/article/details/79737533
      引用文中的一个图
    image.png

相关文章

  • GC原理以及实现方式

    原理内存空间的回收 实现方式1.标记清除法(since 1960)image.png分为两个阶段- 标记阶段:标记...

  • android系列

    Android基础 GC原理时机以及GC对象; 可以通过一些技巧和方式让GC运行更加合理、高效当程序员创建对象时,...

  • Go语言——垃圾回收GC

    Go语言——垃圾回收GC 参考: Go 垃圾回收原理 Golang源码探索(三) GC的实现原理 Getting ...

  • PFI

    jvm 介绍下内存模型?为什么需要内存模型?新生代gc方式?工作原理? 老年代GC方式?工作原理?适用场景? 标...

  • Go GC

    1、什么是GC?2、为什么会有GC?3、GC的优点?4、GC的缺点?5、Go中的GC历史6、Go中的GC实现原理(...

  • GC —— 垃圾回收机制认识与算法详解

    目录 GC相关概念 常见GC算法 引用计数算法核心思想实现原理实例优缺点 标记清除算法核心思想实现原理图示优缺点 ...

  • unity3d性能:GC分析2

    本文讲解针对GC的优化具体的操作,针对GC的产生以及原理不清晰的可以查看 unity3d性能:GC分析 文章。本文...

  • GC 的实现原理

    当一个对象不再被引用的时候,内存回收它占领的空间,以便空间被后来的新对象使用。除了释放没用的对象,垃圾收集也可以清...

  • Java基础 (14) 垃圾回收

    1)GC算法(各种算法的优缺点以及应用场景)2)内存对象的循环引用及避免3)内存回收机制、GC回收策略、GC原理时...

  • .net面试知识点

    异步原理以及实现方式 参考文档:https://www.cnblogs.com/haiyoune2/p/92436...

网友评论

      本文标题:GC原理以及实现方式

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