ParNew回收器介绍

  1. 如果说Serial GC是年轻代中的单线程垃圾收集器,那么ParNew收集器则是Serial收集器的多线程版本。
    • Par是Parallel的缩写,New:只能处理新生代
  2. ParNew 收集器除了采用并行回收的方式执行内存回收外,两款垃圾收集器之间几乎没有任何区别。ParNew收集器在年轻代中同样也是采用复制算法、”Stop-the-World”机制。
  3. ParNew 是很多JVM运行在Server模式下新生代的默认垃圾收集器
  4. 在程序中,开发人员可以通过选项**-XX:+UseParNewGC**手动指定使用ParNew收集器执行内存回收任务。它表示年轻代使用并行收集器,不影响老年代。
  5. **-XX:ParallelGCThreads**限制线程数量,默认开启和CPU数据相同的线程数

image.png

ParNew回收器与Serial回收器比较

  1. ParNew收集器运行在多CPU的环境下,由于可以充分利用多CPU、多核心等物理硬件资源优势,可以更快速地完成垃圾收集,提升程序的吞吐量。
  2. 但是在单个CPU的环境下,ParNew收集器不比Serial收集器更高效。虽然Serial收集器是基于串行回收,但是由于CPU不需要频繁地做任务切换,因此可以有效避免多线程交互过程中产生的一些额外开销。
  3. 除Serial外,目前只有ParNew GC能与CMS收集器配合工作