Java 并发系列:阿姆达尔定律

Java 并发系列:阿姆达尔定律

阿姆达尔定律,给出定量的计算公式,计算CPU并行运算后的效率提升能力。

定义:

  • T = 串行执行总时间
  • B = 不可并行执行的时间
  • T-B = 可并行执行的时间
  • N = 线程或CPU的个数
  • T(N) = 使用N个线程并行执行的总时间

则:

T(N) = B + (T(1)-B)/N

根据阿姆达尔定律,可以指导性能优化,分别对B,T-B进行优化。对于B,用因子O来描述优化的倍数,则采用O,N参数进行优化后的执行总时间为:

T(O,N) = B/O + (1-B/O)/N

优化加速比:

Speedup = 1/T(O,N)

利用这个结论,可以在做系统性能优化时,确定优化的重点和收益:我们应该重点优化串行部分还是并行部分?带来的性能提升是多少?

猜你喜欢

转载自blog.csdn.net/Qguanri/article/details/81062795