多线程提高GC吞吐量问题
来源:6-4 面试官:GC基本功面试:说说STW、吞吐量、FootPrint和Latency?(1)

_开发小白
2021-03-31
请求大仙个问题,章节6-4,时间11:30,提到多线程因为不能降低CPU占用率所以不能提高GC吞吐量。
为什么呢?如果多核并行执行,单核占用率不变,但任务被分到多个核进行,多核同时进行GC,整体效率就会提高吧?这样不算提高GC吞吐量吗
写回答
1回答
-
阿姆达定律,
比如你有1000个工作要做, 800个可以并发, 200个不可以并发。
现在你有10个CPU去执行,那么800个可以并发的工作, 就被并发做。 但是并发做, 需要消耗额外的工作量,比如拆分任务、合并结果。
但是无论如何,1000份工作,都必须去做。 所以并发是节省了时间,但是并没有降低工作量,反而使得工作量上升。 从时间上,是快了,工作量没有下降,多了拆分任务、合并结果的时间。
所以从整体考虑,并发是为了延迟,还有单位时间的吞吐量。 通常的,不并发的算法当然工作量少,只不过执行慢。
022021-08-08
相似问题