zoukankan      html  css  js  c++  java
  • Java中基于HotSpot虚拟机的垃圾收集器

     

    名称 过程 优缺点

    Serial

    进行垃圾收集时,必须暂停其他所有的工作进程,直到它收集结束。
    是一个单线程收集器

    Stop the world。

    新生代收集器。

    手工设置新生代的大小:-Xmn

    Eden与Survivor区的比例:-XX:SurvivorRatio

    晋升老年代对象年龄:-XX:PretenureSizeThreshold

    简单而高效(运行在Client默认新生代收集器)

    对于Client模式下的虚拟机来说是一个很好的选择

    ParNew

    就是Serial收集器的多线程版本。

    新生代收集器。

    使用-XX:UseConcMarkSweepGC选项来设置默认新生代收集器

    使用-XX:+UseParNewGC来强制使用它。

    运行在Server模式下的虚拟机中首选的新生代收集器。

    在多cpu环境下有较好的效果

    Parallel

    Scavenge

    使用复制算法并行多线程的收集器。

    目标是:达到一个可控制的吞吐量

    新生代收集器。

    经常被称为“吞吐量优先”收集器。

    控制最大垃圾收集停顿时间:-XX:MaxGCPauseMillis

    控制设置吞吐量大小:-XX:GCTimeRatio

    自动调整新生代的大小:-XX:+UseAdaptiveSizePolicy

    没有:良好响应速度,适合需要与用户交互的程序;

    高吞吐量:高效利用CPU,适合在后台运算而不需要太多交互的任务

    自适应调节策略是Parallel Scavenge 与ParNew的一个重要区别。

    Parallel 

    Old

    是Parallel Scavenge的老年代版本,使用多线程和“标记-整理”算法。 注意吞吐量以及CPU资源敏感的场合,都可以优先考虑Paralle Scavenge 加 Parallel Old收集器。
    CMS

     Concurrent Mark Sweep。

    是一种以获取最短回收停顿时间为目标的收集器。

    适合B/S的服务器端。
    基于“标记-清除”算法。

    整体过程分为4个步骤:初始标记、并发标记、重新标记和并发清除。

    并发收集,低停顿。

    3个明显的缺点:对CPU资源非常敏感;无法处理浮动垃圾;收集结束时会有大量空间碎片产生。

    G1

    当今收集器技术发展的最前沿成果之一。

    是一款面向服务端应用的垃圾收集器。

    如果不计算维护Rememberd Set的操作,G1运行大致分为:初始标记、并发标记、最终标记、筛选回收。

    并行与并发;分代收集;空间整合;可预测的停顿(相对于CMS的另一大优势)
  • 相关阅读:
    1.Math函数对象
    1.日期与时间
    使用object literal替换switch
    Array数组去重
    flexbox弹性布局
    web移动端一些常用知识
    解决网页ICON图标无法显示的问题
    观察者模式和发布订阅模式的区别
    JS延迟加载的几种方式
    前端 api 请求缓存方案
  • 原文地址:https://www.cnblogs.com/fankongkong/p/6401035.html
Copyright © 2011-2022 走看看