7、怎么查看服务器默认的垃圾收集器是哪个?生产上如何配置垃圾收集器的?谈谈你对垃圾收集器的理解?

Scroll Down

大纲

image-1662988851498

怎么查看默认的垃圾收集器是哪个?

image-1662988868023

默认的垃圾收集器有哪些?(其实是7种,其中UseOldSerialGC被废弃了,源码中没有了)

image-1662988886270

垃圾收集器

image-1662988923303
image-1662988930755

  • 部分参数预先说明
    image-1662988946734
  • Server/Client模式分别是什么意思
    image-1662988960457
  • 新生代
    image-1662988978437
    • 串行GC(Serial)/(Serial Copying)
      image-1662988999076
    • 并行GC(ParNew)
      image-1662989027440
    • 并行回收GC(Parallel)/(Parallel Scavenge)
      image-1662989057075
  • 老年代
    image-1662989082781
    • 串行GC(Serial Old)/(Serial MSC)
      image-1662989097526
    • 并行GC(Parallel Old)/(Parallel MSC)
      image-1662989111627
    • 并发标记清除GC(CMS)
      image-1662989143776
      • 4步过程
        image-1662989161846
        • 初识标记(CMS initial mark)
          image-1662989183436
        • 并发标记(CMS consurrent mark)和用户线程一起
          image-1662989196600
        • 重新标记(CMS remark)
          image-1662989208769
        • 并发清除(CMS concurrent sweep)和用户线程一起
          image-1662989222799
      • 四步概述
        image-1662989251132
      • 优缺点
          • 并发收集低停顿
          • 并发执行,对CPU资源压力大
            image-1662989299788
          • 采用的标记清除算法会导致大量碎片
            image-1662989312217
  • 垃圾收集器配置代码总结
    • 底层代码
      image-1662989434957
    • 实际代码
      image-1662989452721
      image-1662989462134

如何选择垃圾收集器

image-1662989488346