HotSpot VM垃圾收集器——Serial Parallel CMS G1垃圾收集器的JVM参数、使用说明、GC分析


【JVM学习笔记】JVM内存区域定义与内存结构

【JVM学习笔记】对象的创建过程、 对象的内存布局、 如何定位和使用对象

【JVM学习笔记】内存回收与内存回收算法 就哪些地方需要回收、什么时候回收、如何回收三个问题进行分析和说明

HotSpot VM垃圾收集器——Serial Parallel CMS G1垃圾收集器的JVM参数、使用说明、GC分析

【JVM基础内容速查表】JVM基础知识 默认参数 GC命令 工具使用 JVM参数设置、说明、使用方法、注意事项等


HotspotVM的垃圾收集器简介

1. Serial Collector

Serial收集器是最基础、历史最悠久的收集器。由一个线程处理所有垃圾收集工作,单线程避免了静态条件,可能会相对的提高工作效率。在单线程处理器,或多线程处理器中需要处理少量数据集(100MB左右)时,有比较明显的优势。

  • Serail Young:Serial的新生代垃圾收集器,采用标记-复制算法 。
  • Serial Old:Serial的老年代垃圾收集器,采用标记-整理算法。

在这里插入图片描述



2. Parallel Collector(throughput collector)

是Serial的多线程版,由多线程执行垃圾收集工作,适合在多处理器中处理中大型数据集,特别是在新生代并发执行时,能显著的减少垃圾收集器的开销。

  • Parallel Young (ParNew):Parallel的新生代垃圾收集器,Serail Young的多线程版,它默认开启的收集线程数与处理器核心数量相同(-XX:ParallelGCThreads 可以限制收集线程数),侧重以多线程工作来降低暂停时长,采用标记-复制算法。
  • Parallel Young (PSYoungGen或称Parallel Scavenge):Parallel的新生代垃圾收集器,与ParNew不同,它是一个以吞吐量优先的并发垃圾收集器,侧重于吞吐量的控制(控制最大垃圾收集停顿时间:-XX:MaxGCPauseMillis、设置吞吐量大小:-XX:GCTimeRatio),采用标记-复制算法。
  • Parallel Old:Parallel的老年代垃圾收集器,Serial Old的多线程版,标记-整理算法。

在这里插入图片描述



3. Concurrent Mark Sweep Collector(CMS)

并发垃圾收集器,适合处理中大型数据集,甚至可以在程序允许时并发的处理大部分工作。这种收集器适用于需要更短暂停时长、对吞吐量要求不高的程序,不过它需要更多的处理器资源以快速处理垃圾收集工作。

  • CMS:用于老年代,采用标记-清除算法。 优点:并发收集、低停顿;缺点:需要更多的处理器资源、产生大量空间碎片等。CMS默认启动的回收线程数是(处理器核心数量+3)/4,核心越多占用CPU越少,但是当CPU小于四个时,它占用的处理器资源也就越大。
    在这里插入图片描述



4. Garbage-First Garbage Collector(G1)

G1是一种服务器端的并发垃圾收集器。与CMS相似,G1也适合处理中大型数据集,可以在程序允许时并发的处理大部分工作;不过G1收集器适用于具有大内存的多处理器机器,它在实现高吞吐量的同时,并能以高概率满足垃圾回收暂停时间目标。

  • G1:虽然它的目标是取代CMS收集器,但其实G1是一个跨代的垃圾收集器,它将会收集所有区域的内存,因此G1无法与其它收集器组合。关于G1的内存结构可以参考这篇



5. Z Garbage Collector(ZCG)JDK11

暂时没有研究,有空了再回来看
参考:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值