11 Fallacies and Pitfalls

每章都会有这个小节。谬论(fallacies)是容易误解的概念。陷阱(pitfalls)是容易出错的点。

Pitfall: Expecting the improvement of one aspect of a computer to increase overall performance by an amount proportional to the size of the improvement.

陷阱:期望一个方面的改进,整体性能的提高与改进收益成正比。

优化最常见路径往往不能达到我们的目标,因为它受到优化的地方本身消耗的时间的影响。

一个简单的问题能够说明了这一点。假设一个程序在计算机上运行 100 秒,其中乘法运算占了 80 秒。 如果想让程序运行速度快五倍,那么需要将乘法速度提高多少倍?

改进后程序的执行时间由阿姆达尔定律(Amdahl's Law)的简单方程给出:

带入这个题目的数据 不管 多大都不能满足条件。

Fallacy: Computers at low utilization use little power.

谬论:负载低的时候消耗功耗很少。

07 小节有说到,即使只有 10% 的负载,也有峰值时 30% 的功耗。Google 的 CPU 利用率多数时候也在 10%-50%。如果功耗能线性于负载,那么将节省大量的能源。

Fallacy: Designing for performance and designing for energy efficiency are unrelated goals.

谬论:性能和功耗是不相关的目标。

一个优化能提升性能,往往能够减少功耗。

Pitfall: Using a subset of the performance equation as a performance metric.

陷阱:使用性能方程的子集作为性能评估指标。

只是用时钟频率、指令数和 CPI 中的一个或者两个来评估性能都可能会得到错误结果。

常见的错误是使用 MIPS(million instructions per second)来做评估。 本质上只用了其中两个指标。