ParNew回收器介绍
- 如果说Serial GC是年轻代中的单线程垃圾收集器,那么ParNew收集器则是Serial收集器的多线程版本。
- Par是Parallel的缩写,New:只能处理新生代
- ParNew 收集器除了采用并行回收的方式执行内存回收外,两款垃圾收集器之间几乎没有任何区别。ParNew收集器在年轻代中同样也是采用复制算法、”Stop-the-World”机制。
- ParNew 是很多JVM运行在Server模式下新生代的默认垃圾收集器
- 在程序中,开发人员可以通过选项
**-XX:+UseParNewGC**
手动指定使用ParNew收集器执行内存回收任务。它表示年轻代使用并行收集器,不影响老年代。 **-XX:ParallelGCThreads**
限制线程数量,默认开启和CPU数据相同的线程数
ParNew回收器与Serial回收器比较
- ParNew收集器运行在多CPU的环境下,由于可以充分利用多CPU、多核心等物理硬件资源优势,可以更快速地完成垃圾收集,提升程序的吞吐量。
- 但是在单个CPU的环境下,ParNew收集器不比Serial收集器更高效。虽然Serial收集器是基于串行回收,但是由于CPU不需要频繁地做任务切换,因此可以有效避免多线程交互过程中产生的一些额外开销。
- 除Serial外,目前只有ParNew GC能与CMS收集器配合工作