提升吞吐量

来源:7-3 Java垃圾回收之新生代垃圾收集器

ShiveryMoon

2020-03-25

老师您好,还是这个Parallel Scavenge提高吞吐量我不太理解。
就是您说:吞吐量=(CPU运行用户代码时间)/
(CPU运行用户代码时间 + CPU用于GC的时间)
要使吞吐量提高,不就是减小分母,也就是减小GC时间么,而新生代是stop-the-world,GC时间就是用户线程停顿时间,所以不就还是关注的是“用户停顿时间”吗?
不知道我哪里理解出了问题,望老师求解!

写回答

2回答

梁永紫萱

2020-04-12

GC停顿时间缩短是以牺牲吞吐量和新生代空间来换取的:系统把新生代调小一些,收集300MB新生代肯定比收集500MB快吧,这也直接导致垃圾收集发生得更频繁一些,原来10秒收集一次、每次停顿100毫秒,现在变成5秒收集一次、每次停顿70毫秒。停顿时间的确在下降,但吞吐量也降下来了

1
0

翔仔

2020-03-26

同学好,吞吐量=运行用户代码时间/(运行用户代码时间+垃圾收集时间) 这里面的垃圾收集时间,包括了用户线程停顿的时间外加垃圾回收时候用户线程不需要停顿的时间,所以它主要关注的是减少GC时间。而CMS是关注减少用户线程停顿的时间,而垃圾回收时候用户线程不需要停顿的时间则不会去关注

0
0

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8427 学习 · 1870 问题

查看课程