美文网首页
jvm内存回收

jvm内存回收

作者: 高山之水 | 来源:发表于2018-04-08 20:23 被阅读0次

    回收区域:堆【主要区域】、方法区【回收废弃常量、无用类】

    无用类定义:
    1、jvm中不存在该实例
    2、加载该类classLoader已被回收
    3、任何地方都不存在引用

    回收算法:
    1、标记清除
    2、标记整理
    3、复制
    4、分代收集

    回收器:
    单线程
    1、serial
    2、serial old
    多线程
    1、parNew
    2、parallel scavenge
    3、parallel old
    4、cms
    5、G1

    回收新生代
    serial、parNew、parallel scavenge

    回收老年代
    cms、serial old、parallel old

    分代收集 G1

    serial

    最老、也是默认回收算法、单线程
    缺点:暂定所有用户进程来回收垃圾、每一小时有五分钟不能给用户提供服务
    优点: 简单高效
    适合场景、clent模式

    ParNew

    serial多线程版本
    场景:参考serial 多核处理器

    Parallel scavenge

    1、复制算法
    2、目标、回收达到一个可控的吞吐量【吞吐量=运行代码时间/(运行代码时间+GC时间)】
    3、吞吐量优先收集器

    serial old

    1、单线程、标记整理算法
    2、serial 老版本
    3、jdk1.5之前配合Parallel scavenge、cms后备预案

    parallel old

    1、Parallel scavenge老版本
    2、标记整理算法
    3、注重吞吐量以及CPU资源敏感场景、使用Parallel scavenge ++ parallel old
    4、吞吐量优先

    CMS

    1、标记清除
    2、目标:最短回收停顿时间
    3、四个步骤:初始标记、并发标记、重新标记、并发清除

    G1

    1、1.7HotSpot重要进化特征
    2、优点:并行并发、分代收集、空间整合【标记整理】、可预测停顿
    3、四个步骤:初始标记、并发标记、最终标记、筛选回收

    欢迎到我的网站寻找更多的知识

    相关文章

      网友评论

          本文标题:jvm内存回收

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