美文网首页
java架构知识总结--jvm相关(回收部分)

java架构知识总结--jvm相关(回收部分)

作者: 爱编程的凯哥 | 来源:发表于2019-03-23 20:40 被阅读0次

    目的

    回收机制整理

    知识概括:

    必须掌握知识概括

    1. 标记算法

      1. 引用计数法
      2. 分析可达性算法
        gc root有:
        • 虚拟机栈
        • 静态方法
        • 常量
        • jni
    2. 清理收集算法

      1. 标记-清除算法
        优:简单,快速
        缺:产生内存碎片
      2. 复制算法
        优:相当于维护两个空间链表,没有内存碎片
        缺:空间大,耗时长
      3. 标记-整理算法
        优: 在标记清除算法基础上,添加整理模块,减少内存碎片
        缺:耗时长
      4. 分代收集算法
        1. 年轻代:
          新生代内存按照8:1:1的比例分为一个eden区和两个survivor(survivor0,survivor1)区。一个Eden区,两个 Survivor区(一般而言)。大部分对象在Eden区中生成。回收时先将eden区存活对象复制到一个survivor0区,然后清空eden区,当这个survivor0区也存放满了时,则将eden区和survivor0区存活对象复制到另一个survivor1区,然后清空eden和这个survivor0区,此时survivor0区是空的,然后将survivor0区和survivor1区交换,即保持survivor1区为空, 如此往复。
          • eden
          • survivor0
          • survivor1
        2. 年老代
        3. 持久代
    3. 垃圾回收器组合

    年轻代 年老代 jvm参数
    Serial Serial -XX:+UseSerialGC
    Parallel Scavenge Serial -XX:+UseParallelGC -XX:-UseParallelOldGC
    Parallel Scavenge Parallel Old -XX:+UseParallelGC -XX:+UseParallelOldGC
    Parallel New或Serial CMS -XX:+UseParNewGC -XX:+UseConcMarkSweepGC
    G1 -XX:+UseG1GC

    垃圾回收器从线程运行情况分类有三种

    串行回收,Serial回收器,单线程回收,全程stw;
    并行回收,名称以Parallel开头的回收器,多线程回收,全程stw;
    并发回收,cms与G1,多线程分阶段回收,只有某阶段会stw;

    详细内容,参考大神博客:

    1. 回收整理:https://www.cnblogs.com/1024Community/p/honery.html#31
    2. cms回收 资料:https://blog.csdn.net/zqz_zqz/article/details/70568819
    3. g1回收参考 https://blog.csdn.net/zhou2s_101216/article/details/79202893

    相关文章

      网友评论

          本文标题:java架构知识总结--jvm相关(回收部分)

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