Optimization 性能优化乘数

Optimization 性能优化乘数,optimization,architecture,micro-optimization,Optimization,Architecture,Micro Optimization,任何人都可以提供一个系统的例子,其中系统的单个子组件的性能提高x%,导致整个系统的总体性能提高Ax%(其中a>1)?换句话说,系统中的局部优化是否会产生积极的乘数效应 我可以发誓,我在过去遇到过这样的性能乘数效应,但就我的一生而言,我甚至无法构建这种情况的假设示例。我能想到的唯一示例是在具有某种硬实时约束的系统中,例如子组件执行时间太长,这会导致某种I/O接口超时并重试。提高子组件的性能可以使其足够快地避免超时+重试,从而显著提高总体性能。真实世界中的例子是旧的skool磁盘控制器(在缓存等出现

任何人都可以提供一个系统的例子,其中系统的单个子组件的性能提高x%,导致整个系统的总体性能提高Ax%(其中a>1)?换句话说,系统中的局部优化是否会产生积极的乘数效应


我可以发誓,我在过去遇到过这样的性能乘数效应,但就我的一生而言,我甚至无法构建这种情况的假设示例。

我能想到的唯一示例是在具有某种硬实时约束的系统中,例如子组件执行时间太长,这会导致某种I/O接口超时并重试。提高子组件的性能可以使其足够快地避免超时+重试,从而显著提高总体性能。真实世界中的例子是旧的skool磁盘控制器(在缓存等出现之前)和网络接口(超时导致数据包被重新发送等)。

我能想到的唯一例子是在具有某种硬实时约束的系统中,例如子组件执行时间太长,这会导致某种I/O接口超时并重试。提高子组件的性能可以使其足够快地避免超时+重试,从而显著提高总体性能。在现实世界中,我想到的例子是旧的skool磁盘控制器(在缓存等出现之前)和网络接口(超时导致数据包被重新发送等)。

这是我所知道的在软件性能上获得倍增效应的唯一方法(没有不同的硬件)就是利用这一点,如果你做的东西花费的时间更少,它会更快。(男孩,那真是太深了。) 如果您将软件所需的时间减少了一小部分X,那么您给了它一个R=1/(1-X)的加速比。 例如,如果一个程序需要100秒,而你成功地剃掉了60秒,那么你只需要40秒,这是它的100/40=2.5倍

以下是X和R的关系:

X    R
0.0  1
0.1  1.11..
0.2  1.25
0.3  1.43..
0.4  1.66..
0.5  2
0.6  2.5
0.7  3.33..
0.8  5
0.9  10
0.99 100
1.0  inf
而且,这些效应是复合的。 如果将时间减少50%,则速度将乘以2。 如果你得到这个结果,并将其时间减少50%,那么速度将再次乘以2

请注意,第二个50%仅为原始时间的25%。 第一次减少使第二次增加了2倍


速度复合放大效应产生了730倍的加速。

我所知道的在软件性能上获得倍增效应的唯一方法(没有不同的硬件)是利用它,它只是说,如果你做的东西花费的时间更少,它会更快。(男孩,那真是太深了。) 如果您将软件所需的时间减少了一小部分X,那么您给了它一个R=1/(1-X)的加速比。 例如,如果一个程序需要100秒,而你成功地剃掉了60秒,那么你只需要40秒,这是它的100/40=2.5倍

以下是X和R的关系:

X    R
0.0  1
0.1  1.11..
0.2  1.25
0.3  1.43..
0.4  1.66..
0.5  2
0.6  2.5
0.7  3.33..
0.8  5
0.9  10
0.99 100
1.0  inf
而且,这些效应是复合的。 如果将时间减少50%,则速度将乘以2。 如果你得到这个结果,并将其时间减少50%,那么速度将再次乘以2

请注意,第二个50%仅为原始时间的25%。 第一次减少使第二次增加了2倍


速度复合放大效应产生了730倍的加速。

这在理论上是不可能的。如果你在花费50%的时间的事情上得到20%的改善,整个过程只会改善10%。@Eric,我想我可能在这个问题上陷入了困境。我一定一直在考虑一种情况,在并行系统中没有不必要的阻塞,并且消除阻塞导致了性能的显著提高。我只是不认为我可以准确地将消除阻塞描述为“子组件中x%的性能改进”。这在理论上是不可能的。如果你在花费50%的时间的事情上得到20%的改善,整个过程只会改善10%。@Eric,我想我可能在这个问题上陷入了困境。我一定一直在考虑一种情况,在并行系统中没有不必要的阻塞,并且消除阻塞导致了性能的显著提高。我只是不认为我可以准确地将消除这种阻塞描述为“子组件中x%的性能改进”。谢谢,这就是我一直在寻找的。我刚刚介绍了平行设计的阿姆达尔定律,所以我应该记住这一点。谢谢,这就是我要找的。我刚刚介绍了平行设计的阿姆达尔定律,所以我应该记住这一点。