Java虚拟机(jdk1.8)学习笔记(经典垃圾收集器)

 并行与并发

并行:并行描述的是多条垃圾收集器线程之间的关系,说明同一时间有多条这样的线程在协同工作,通常默认此时用户线程是处于等待状态。

并发:并发描述的是垃圾收集器与用户线程之间的关系,说明同一时间垃圾收集器线程与用户线程都在运行。由于用户线程未被冻结,所以程序仍能响应服务请求,但由于垃圾收集器占用了部分系统资源,此时应用系统处理的吞吐量会受到影响。

所以在对服务吞吐量进行优化时,也需要重点考虑垃圾收集器的选择。

Serial收集器

Serial是一个单线程的收集器。这里所谓的单线程并不是只会使用一个处理器或一个收集线程去完成垃圾收集工作。更重要的是在它进行垃圾收集时,必须暂停其他工作线程。

对于单核处理器或处理器核心数较少的环境中,Serial收集器由于没有线程交互的开销,专心做垃圾收集,在单线程中Serial收集效率较高。优点:简单高效。

应用场景:在用户桌面的应用场景以及部分微服务应用中,分配给虚拟机管理的内存一般来说并不会特别大,收集几十兆甚至几百兆的新生代(仅指新生代中使用的内存),垃圾收集时间甚至可以控制在十几、几十毫秒。只要不频繁的发生垃圾收集,短暂的停顿对于用户是可以接受的。

ParNew收集器

ParNew收集器实质上是Serial收集器的多线程并行版本,除了使用多线程进行垃圾收集之外,其余的行为包括Serial收集器可用的所有控制参数(例如:-XX:SurvivorRatio、-XX:PretenureSizeThreshold、-XX:HandlePromotionFailure等)、收集算法、Stop The World、对象分配规则、回收策略等与Serial收集器完全一致。

ParNew收集器除了支持多线程并行收集之外,其他与Serial收集器相比并没有太多创新之处,但它却是不少运行在服务端模式下的HotSpot虚拟机,尤其是JDK 7之前的遗留系统中首选的新生代收集器,其中有一个与功能、性能无关但其实很重要的原因是:除了Serial收集器外,目前只有它能与CMS收集器配合工作。

Parallel Scavenge收集器

Parallel Scavenge是一款新生代垃圾收集器,基于标记复制算法实现的收集器,并且能够并行收集的多线程收集器。

Parallel Scavenge收集器的特点与其他收集器不同,Parallel Scavenge目标是达到一个可控制的吞吐量。该吞吐量指处理器用于运行用户代码的时间与处理器总

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小武的Java笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值