多线程提高GC吞吐量问题

来源:6-4 面试官:GC基本功面试:说说STW、吞吐量、FootPrint和Latency?(1)

_开发小白

2021-03-31

请求大仙个问题,章节6-4,时间11:30,提到多线程因为不能降低CPU占用率所以不能提高GC吞吐量。
为什么呢?如果多核并行执行,单核占用率不变,但任务被分到多个核进行,多核同时进行GC,整体效率就会提高吧?这样不算提高GC吞吐量吗

写回答

1回答

求老仙

2021-03-31

阿姆达定律,

比如你有1000个工作要做, 800个可以并发, 200个不可以并发。

现在你有10个CPU去执行,那么800个可以并发的工作, 就被并发做。 但是并发做, 需要消耗额外的工作量,比如拆分任务、合并结果。

但是无论如何,1000份工作,都必须去做。 所以并发是节省了时间,但是并没有降低工作量,反而使得工作量上升。 从时间上,是快了,工作量没有下降,多了拆分任务、合并结果的时间。

所以从整体考虑,并发是为了延迟,还有单位时间的吞吐量。 通常的,不并发的算法当然工作量少,只不过执行慢。 

0
2
血夜之末
所以,我的理解,这里的吞吐量,实际就是阿姆达尔定律的表现。
2021-08-08
共2条回复

笑傲Java面试 剖析大厂高频面试真题 秒变offer收割机

深度剖析大厂面试高频真题,让你秒变offer收割机

1783 学习 · 314 问题

查看课程