请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

多线程提高GC吞吐量问题

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

正在回答

1回答

阿姆达定律,

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

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

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

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

0 回复 有任何疑惑可以回复我~
  • 应该说的是阿姆达尔定律吧。
    这个有一个公式。
    情况是计算资源不变,那么实际产生价值的并行计算占比越高,性能越好。而过多的线程会带来线程切换等cpu操作,占用更多的计算资源,从而降低并行计算占比,进而降低整体性能。
    回复 有任何疑惑可以回复我~ 2021-08-08 15:59:59
  • 所以,我的理解,这里的吞吐量,实际就是阿姆达尔定律的表现。
    回复 有任何疑惑可以回复我~ 2021-08-08 16:02:14
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信