美文网首页
垃圾回收算法

垃圾回收算法

作者: whynotybb | 来源:发表于2019-01-12 17:34 被阅读0次

标记-清除算法 

是最基础的GC算法,其他算法都是基于此算法,并且改进其缺点。

缺点:

效率问题

空间问题:标记清除之后会产生大量不连续的内存碎片。内存碎片可能会导致:当程序在以后的运行过程中,需要分配较大对象时无法找到足够的连续内存而不得不提前触发另一次垃圾收集动作。

复制算法:为了解决效率问题,将可用内存安容量划分为代销相等的两块,每次只使用其中的一块,当这一块用完了,将存活的对象复制到另一块上,然后再把已使用过的内存空间一次清理掉。这样使得每次都是对其中一块进行内存回收,内存分配时也就不用考虑内存碎片等复杂情况。只是复制算法将内存缩小为一半,代价太大。

现在的商业虚拟机都采用这种收集算法来回收新生代。新生代对象98%都是朝生夕死的,所以并不需要按照1:1来划分内存空间,将内存划分为1块较大的Eden空间,和两个Survivor区,

当回收时,将Eden和Survivor中还存活的对象一次性的拷贝到另一块Survivor区,最后清理掉Eden和刚才用过的Survivor区。HotSpot虚拟机默认的Eden和Survivor大小之比是8:1,也就是每次新生代中可用的内存空间是90%。

复制算法当存活率高时不适用。比如老年代。

分代收集算法:

现代商业虚拟机垃圾回收算法都是采用分代回收算法,根据对象的存活周期的不同将内存划分为几块。一般是把Java堆分为新生代和老年代。

分代收集算法

相关文章

  • JVM垃圾回收

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

  • JVM垃圾回收算法

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

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

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

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

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

  • JVM - 垃圾回收算法

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

  • JVM(七)垃圾收集器

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

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

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

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

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

  • JVM垃圾回收算法

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

  • GC原理,有哪几种GC方式?

    标记-清除 算法 引用计数法 复制算法 标记-压缩 算法 分代垃圾回收 增量式垃圾回收算法 RC Immix 算法

网友评论

      本文标题:垃圾回收算法

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