ParNew垃圾收集器

本文解析了ParNew收集器作为Serial收集器的多线程版本,其在新生代采用并行复制算法,适用于多CPU环境提升吞吐量,但在单核场景下效率不增反减。了解其与Serial的区别、与CMS的配合以及使用方法 '-XX:+UseParNewGC'。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 可以理解为ParNew收集器是Serial收集器的多线程版本。Par是Parallel的缩写,New说明只能处理的是新生代。
  • ParNew收集器和Serial收集器非常相似,区别只有ParNew采用的是并行垃圾收集。ParNew在新生代中也是采用复制算法、”Stop the World“机制。
  • ParNew是很多JVM运行在Server模式下新生代默认的垃圾收集器。

对于新生代,回收次数频繁,使用并行方式高效。

对于老年代,回收次数少,使用串行方式节省资源。(CPU并行需要切换线程,串行可以省去切换线程的资源)。

  • 多CPU环境下,ParNew可以充分利用CPU、多核心等硬件资源优势,可以更快的完成垃圾收集,提升程序吞吐量。单CPU场景下,ParNew并不比Serial收集器更高效。ParNew创建的线程虽然多,但是也会带来额外的上下文切换开销。
  • 除Serial收集器外,只有ParNew能与CMS收集器配合工作。
  • 在程序中,开发人员可以使用"-XX:+UseParNewGC"手动指定使用ParNew收集器执行内存回收任务。它表示年轻代使用ParNew收集器,不影响老年代。
  • -XX:ParallelGCThreads限制线程数量,默认开启和CPU数量相同的线程数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值