美文网首页
3. java1.8中垃圾收集器的分类

3. java1.8中垃圾收集器的分类

作者: lj72808up | 来源:发表于2020-07-10 16:06 被阅读0次

一. 收集器的分类

此前的所有讨论, 都是基于 serial collector ; 事实上1.8的 jvm 包含三种不同的收集器, 各自扮演不同的角色:

  1. The serial collector :
    仅使用1个线程来完成所有的垃圾回收操作, 因为没有线程间通信的问题, 是的它的十分高效. 特别适合作为单核机器上的 jvm 进程的回收器, 因为它无法利用多核心的优势. 它是为小堆设计的收集器(大约100M) -XX:+UseSerialGC 明确指定

  2. The parallel collector (也叫吞吐量收集器) :
    该收集器可以并行的执行 minor gc, 它是为中等堆到大堆应用设计的收集器. 使用-XX:+UseParallelGC打开

    • Parallel compaction 是让该收集器可以并行执行 major gc 的新特性. 如果没有该特性, major gc 也会是单线程的, 将大大影响应用的扩展性. Parallel compaction 特性在开启 -XX:+UseParallelGC 后会自动打开, 如果想关掉它可以使用-XX:-UseParallelOldGC指定
  3. 最大并发(concurrent)的收集器 (小停顿时间) :
    这种收集器的并行度是最大的, 垃圾收集线程甚至能和应用线程并行, 最大程度的减小 gc 停顿时间. 它专为中型堆和大型堆设计, 且要求应用认为响应时间比吞吐量更重要(因为某些最小化停顿的技术会降低gc的性能). jvm1.8 提供了两种此类收集器 CMS 和 G1. 前者使用-XX:+UseConcMarkSweepGC开启; 后者使用-XX:+UseG1GC开启

二. Selecting a Collector

  1. 选择标准
    • 首先, 如果应用所需的堆非常小, 接近100MB, 使用 Serial 收集器-XX:+UseSerialGC
    • 如果应用跑在单核机器上, 让 jvm 选择用哪个收集器, 或手动指定 Serial 收集器-XX:+UseSerialGC
    • 如果应用的性能表现是第一优先级, 并且没有停顿时间要求或是可以接受1秒甚至更长的停顿时间, 可以让 jvm 选择用哪个收集器, 或手动指定 parallel 收集器-XX:+UseParallelGC
    • 如果响应时间比总共的吞吐量更重要, 且要求停顿时间小于1秒, 再去选择并发收集器XX:+UseConcMarkSweepGC-XX:+UseG1GC.

值得注意的是, 当gc收集器的表现未能到达预期时, 首先要尝试的是调整 total heap 和各个 generation 的大小, 如果仍不能到达预期, 再去选择并发( concurrent )收集器来满足停顿时间的目标, 选择并行( parallel )收集器满足吞吐量的需求

相关文章

  • 3. java1.8中垃圾收集器的分类

    一. 收集器的分类 此前的所有讨论, 都是基于 serial collector ; 事实上1.8的 jvm 包含...

  • JVM垃圾收集器分类&垃圾收集器组合关系

    垃圾收集器的各种分类 按线程数分类: 分为单核(串行收集器)和多核(并行收集器)单核 CPU中适合使用串行收集器多...

  • JVM垃圾回收

    JVM垃圾收集器 一、垃圾收集器的分类 1.1 Serial GC 出现的最早,比较古老,最大的特点就是垃圾收集策...

  • 2.垃圾收集器与内存分配策略(1)

    本章要点 1.如何判定对象死亡2.垃圾回收算法3.垃圾收集器4.引用分类 1.判定对象死亡 要想知道如何垃圾回收,...

  • Day 4 JVM

    新生代:复制算法. 老年代:清除和整理算法. 垃圾收集器分类: Serial 串行收集器. Parallel收集器...

  • 5.垃圾收集器

    一、垃圾回收器分类 新生代垃圾收集器:Serial 、 ParNew 、Parallel Scavenge老年代垃...

  • 2021-01-17 JVM-性能调优

    垃圾收集器分类 串行收集器->Serial和Serial Old只能有一个垃圾回收线程执行,用户线程暂停适用于'内...

  • 【JVM】垃圾回收机制(3)--垃圾收集器

    一 垃圾收集器概述 中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商、不同版本的虚拟机所提供的垃圾收集器 ...

  • JVM垃圾收集器(三)

    接着上一篇JVM垃圾收集器(二)讲。 四、垃圾收集器 Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,...

  • 关于GC之四-垃圾收集器实战

    JVM 垃圾回收器分类 新生代串行收集器 串行收集器主要有两个特点:第一,它仅仅使用单线程进行垃圾回收;第二,它独...

网友评论

      本文标题:3. java1.8中垃圾收集器的分类

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