美文网首页
垃圾回收算法

垃圾回收算法

作者: esfak47 | 来源:发表于2017-10-12 10:09 被阅读0次

G1垃圾回收和其他的区别

  1. 串行回收:主要面向单线程环境

  2. 并行/吞吐量回收器:JVM默认回收器,Parallel collector,最大的有点是使用多个线程来扫描以及压缩对,其缺点是minorGC或者fullGC都会暂停应用程序

  3. CMS回收器:这个算法使用了多个线程来扫描对并标记那些不再使用的可以回收的对象。这个算法在两种情况下会进入一个“stop the world”的模式。但进行跟对象的·初始标记的时候(老年代中线程入口点或者静态变量科大的哪些对象)以及当这个算法在并发运行的时候应用程序改变了对的状态是的他不得不得回去确认自己的标记是或否都是正确的。还有一个使用这个垃圾回收器碰到的问题是promotion fail,在这时候老年代没有多余的空间,他只能进行一次stw的full gc,为了去表不会发生这种事情,要么增加的老年代的大小。

    还有一个缺点就是和并行回收器相比,他使用的CPU资源会跟多,假如你的堆小于4G,而你又希望分配更多的CPU资源以避免应用暂停。

  4. G1回收器:G1回收器将堆分为多个区域,大小从1MB到32MB不等,并使用多个后台线程来扫描他们。G1回收器会优先扫描那些包含垃圾最多的区域,这正是他名字的由来。

    这一策略减少了后台线程还未扫描完无用对象前堆就已经用完的可能性,那种情况回收器就必须暂停应用,这会导致STW回收。G1的另一个好处就是他总会进行堆的压缩,二CMS回收器只用在Full GC的时候才会干这个事。

    现在的微服务包括格力程序的组件,简化部署,便面重新加载应用类到内存所长城的开销

    这么做主要还是避免中长期的“stop the world”的暂停

    G1回收器的字符串去重,由于字符串占用了大多数的对空间,这样的优化是的G1回收器能识别出对重的那些重复出现的字符串并将他们指向同一个内部的char[]数组,以避免一个字符串的多份拷贝,这样的对的使用效率会变得很低。

相关文章

  • 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/tddnyxtx.html