美文网首页
垃圾收集器整理&Java8默认垃圾回收器

垃圾收集器整理&Java8默认垃圾回收器

作者: ChandlerQian | 来源:发表于2020-09-01 16:00 被阅读0次

    垃圾收集器整理

    1.Serial 垃圾收集器(单线程、复制算法)

    2.ParNew 垃圾收集器(Serial+多线程)

    3.Parallel Scavenge 收集器(多线程复制算法、高效)
    自适应调节策略也是 ParallelScavenge 收集器与 ParNew 收集器的一个
    重要区别。

    4.Serial Old 收集器(单线程标记整理算法 )

    5.Parallel Old 收集器(多线程标记整理算法)

    6.CMS 收集器(多线程标记清除算法)
    最主要目标是获取最短垃圾回收停顿时间

    7.G1 收集器
    相比与 CMS 收集器,G1 收集器两个最突出的改进是:

    1. 基于标记-整理算法,不产生内存碎片。
    2. 可以非常精确控制停顿时间,在不牺牲吞吐量前提下,实现低停顿垃圾回收。

    问题: java默认垃圾回收器是什么?

    image.png
    1.java -XX:+PrintCommandLineFlags -version
    
    -XX:InitialHeapSize=268435456 -XX:MaxHeapSize=4294967296 -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC 
    java version "1.8.0_211"
    Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
    Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
    
    2.jps
    
    81413 SgupPlatformApplication
    81412 Launcher
    80585 Launcher
    81433 Jps
    80541 
    80574 Launcher
    
    3.jinfo -flag UseParallelOldGC 81413(进程号)
    
    -XX:+UseParallelOldGC
    

    那为什么不是Parallel Scavenge +Serial Old组合?
    原因是:如果指定了-XX:+UseParallelGC参数,并行压缩默认是启用的。可以使用-XX:-UseParallelOldGC来禁用该功能。 也就是说当指定了参数-XX:+UseParallelGC,则默认也指定了-XX:+UseParallelOldGC。即默认使用了 Parallel old垃圾收集器。

    总结: java8默认使用的应该是 Parallel Scavenge + Parallel Old

    相关文章

      网友评论

          本文标题:垃圾收集器整理&Java8默认垃圾回收器

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