【Java 8 GC 调优】并发GC(Mostly Concurrent Collector)

本文介绍了Java 8中的两种并发GC——CMS和G1,强调了并发GC如何通过牺牲处理器资源来缩短Major GC暂停时间。CMS适用于短暂停需求,而G1适合大内存和高吞吐量场景。并发GC存在处理器开销,并可能导致吞吐量下降。在单处理器系统上,CMS有特殊模式以降低暂停时间,但在Java 8中已废弃。
摘要由CSDN通过智能技术生成

并发GC 之所以称为“并发”,是因为它的很多操作 与 应用程序的业务 是并发关系。

注意是“很多操作”而不是“所有操作”。所以提到它时会附带“Mostly”,即“Mostly Concurrent Collectors”。

 

Hotspot JDK 8 中 有 2个 并发GC:

  • CMS(Concurrent Mark Sweep Collector): 适用于需要更短的GC暂停时间,且可以忍受处理器资源被GC共享 的应用程序。

    (其实这是 并发GC 的一般特征,G1 也是这样的。)

  • G1(Garbage-First Garbage Collector): 适用于大内存多处理器的机器。它可以在实现高吞吐量目标的同时,高概率满足暂停时间目标。

 

并发的开销

并发GC 以处理器资源为代价换取更短的 Major GC 暂停时间(这些处理器资源本可以用于执行应用程序的业务)。

最明显的开销就是在 GC 并发操作期间,它会用到 一个或多个 处理器。

在有 N 个 处理器的系统上,这些并发操作会使用 K/N 个处理器,其中 1<= K <=ceiling{N/4} 。(注意:K 的精度选择和边界可能会更改。)

除了在并发阶段使用处理器外,“启用并发性”也会产生额外的开销。

因此,虽然使用 并发GC 后暂停时间会短得多,但的吞吐量比 其它GC 稍低。

在多处理器机器上,GC并发阶段期间,业务线程仍然有可用的处理器,所以 并发GC 不会“暂停”应用程序。这个特性最终会表现为“较短的暂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值