serialGC和parnew垃圾回收器

Serial 收集器

Serial收集器属于串行回收

Serial 介绍

  • Serial收集器是最基本、历史最悠久的垃圾收集器了。JDK1.3之前回收新生代唯一的选择。
  • Serial收集器作为HotSpot中Client模式下的默认新生代垃圾收集器
  • Serial收集器采用复制算法、串行回收和"STW"机制的方式执行内存回收。

Serial old 介绍

除了年轻代之外,Serial收集器还提供用于执行老年代垃圾收集的Serial Old收集器。

  • Serial old收集器采用标记-整理算法串行回收和"STW"机制的方式执行内存回收。
  • Serial old在Server模式下主要有两个用途:
    • 与新生代的ParallelScavenge配合使用。
    • 作为老年代CMS收集器的后备垃圾收集方案。

Serial 收集器

serialGC工作流程

  • 这个收集器是一个单线程的收集器,但它的“单线程”的意义并不仅仅说明它只会使用一个CPU或一条收集线程去完成垃圾收集工作,更重要的是在它进行垃圾收集时,必须暂停其他所有的工作线程,直到它收集结束(Stop The World )。
  • 在client模式下是默认的垃圾回收器

Serial优点和如何使用

  • 优点
    • 简单而高效(与其他收集器的单线程比),对于限定单个CPU的环境来说,Serial收集器由于没有线程交互的开销,专心做垃圾收集自然可以获得最高的单线程收集效率。运行在Client模式下的虛拟机是个不错的选择。
    • 在用户的桌面应用场景中,可用内存一般不大(几十MB至一两百MB), 可以在较短时间内完成垃圾收集(几十ms至一百多ms) ,只要不频繁发生,使用串行回收器是可以接受的。
  • 使用
    • 在HotSpot虛拟机中,使用-XX: +UseSerialGC 参数可以指定年轻代和老年代使用串行收集器。

ParNew 收集器

parnew收集器属于并行回收,吞吐量优先

ParNew 介绍

  • 如果说Serial GC是年轻代中的单线程垃圾收集器,那么ParNew收集器则是Serial收集器的多线程版本。
  • ParNew收集器在年轻代中同样也是采用复制算法、"Stop一 the一World"机制
  • ParNew是很多JVM运行在Server模式下新生代的默认垃圾收集器。

ParNew 收集器

ParNew工作流程

  • ParNew收集器除了采用并行回收的方式执行内存回收外,两款垃圾收集器之间几乎没有任何区别

ParNew 优点和如何使用

  • 优点
    • ParNew 收集器运行在多CPU的环境下,由于可以充分利用多CPU、 多核心等物理硬件资源优势,可以更快速地完成垃圾收集,提升程序的吞吐量。
    • 但是在单个CPU的环境下,ParNew收 集器不比Serial收集器更高效。虽然Serial收集器是基于串行回收,但是由于CPU不需要频繁地做任务切换,因此可以有效避免多线程交互过程中产生的一些额外开销。
    • 除Serial Old外,目前ParNew GC还可以与CMS收集器配合工作
  • 使用
    • -XX: +UseParNewGC"手动指定使用ParNew收集器执行内存回收任务。它表示年轻代使用并行收集器,不影响老年代。

    • -XX:ParallelGCThreads 限制线程数量,默认开启和CPU数据相同的线程数。

如有问题还请批评指正。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值