吞吐量优先和并发收集

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了吞吐量优先和并发收集相关的知识,希望对你有一定的参考价值。

参考技术A 所在项目常用的垃圾回收器有两种:
1.Parallel Scavenge + Parallel Old;(又称吞吐量优先,适合做后台的运算)
2.CMS;(又称并发标记清除,能降低停顿的时间,适合做前台交互,以提供更快的相应)

Parallel Scavenge :年轻代回收器,复制算法,并行多线程收集,可以使用+UseAdaptiveSizePolicy开启自适应策略,让垃圾回收器自己调整回收。
Parallel Old:标记整理算法,吞吐量优先,GC线程与用户线程互斥执行。
CMS:标记清除算法,四个步骤:初始标记、并发标记、重新标记、并发清除,其中初始标记与重新标记需要stop the world,而并发标记和并发清除和用户线程一起执行。
缺点:产生内存碎片,所以需要在每次fullGC后进行整理,可以调整每几次fullGC后进行整理;
产生浮动垃圾(并发清除产生的垃圾达到一定比例后,需要做一次fullGC);
占用大量用户线程,降低了吞吐量;

「JVM」调优参数总结

参考技术A 因此我们一般设置-Xms、-Xmx这两个参数相等,可以避免在每次GC 后动态调整堆的大小带来的影响。

吞吐量和停顿时间是互斥的。 对于后端服务(比如后台计算任务),吞吐量优先考虑(并行垃圾回收);

对于前端应用,RT响应时间优先考虑,减少垃圾收集时的停顿时间,适用场景是Web系统(并发垃圾回收)

以上是关于吞吐量优先和并发收集的主要内容,如果未能解决你的问题,请参考以下文章

一文读懂 JVM 调优总结

JVM 之GC垃圾回收器参数设置

JVM专题-垃圾回收

java虚拟机-GC-调优

「JVM」调优参数总结

38垃圾回收器 — Parallel Scavenge(JDK8默认)