java虚拟机的垃圾收集器之新生代收集器

hotspot虚拟机的收集器之新生代收集器

hotspot垃圾收集器主要有七种:如图所示:
这里写图片描述
图中上面部分是新生代的垃圾收集器,下面部分表示老年代的垃圾收集器,两个垃圾收集器的之间的连线表示两个收集器搭配使用。

serial收集器

serial收集器是最基本发展最悠久的收集器。serial收集器是一个单线程的收集器,但他的“单线程”的意义并不仅仅只会使用一个cpu或者一条线程去完成垃圾收集工作,更重要的是在他进行垃圾收集时,必须暂停其他所有的工作线程,直到收集结束。
这里写图片描述
serial/serial Old收集器运行示意图

serial的优点:简单有效(与其他收集器的单线程比),对于限定单个cpu的环境来说,serial收集器由于没有线程交互的开销,专心做垃圾收集自然可以获得最高的单线程的收集效率。serial收集期对于运行在client模式下的虚拟机来说是一个很好的选择。

ParNew收集器

ParNew收集器其实就是serial收集器的多线程版,除了使用对线程进行垃圾回收收集之外,其余包括serial收集器可用的所有控制参数、收集算法、stop the world、对象分配规则、回收策略等都和serial收集器完全一样。
这里写图片描述
ParNew/serial Old 收集器运行示意图

ParNew收集器的优缺点:ParNew收集器在单cpu的环境中绝对不会比serial好,甚至由于存在线程交互的开销,该收集器在通过超线程技术 实现的两个cpu的环境中都不能百分之百保证超过serial收集器。当然随着cpu的数量增加,他对于GC时系统资源的利用还是很有好处的。

Parallel Scavenge收集器

Parallel Scavenge收集器也是使用复制算法的收集器
Parallel Scavenge的特点:Parallel Scavenge关注与其他收集器不同,CMS等收集器的关注点是尽可能地缩短垃圾收集时用户线程的停顿时间,而Parallel Scavenge收集器的目标则是达到一个可控制的吞吐量,所谓的吞吐量就是CPU用于运行用户代码的时间与CPU总耗时间的比值,即吞吐量 = 运行用户代码时间/(运行用户代码时间+垃圾收集时间)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值