需要注意的是,虽然这8大思想绝大程度上是给计算机设计者的,但即使是其他领域也具有启发性。
1.面向摩尔定律的设计
摩尔定律(Moore’s Law)指出单芯片上的集成度每18~24个月翻一番。由于计算机设计需要几年时间,因此在项目结束时,单芯片的集成度相对于设计开始时很容易翻一番甚至翻两番。
虽然时间到了2020年,芯片的发展速度放缓,渐渐地,人们发现摩尔定律快要失效了。死卡规律没什么意思,不过这个思想确时是很好用的,需要设计人员把眼光放得长远。
2.使用抽象简化设计
使用抽象来表达不同的设计层次,在高层次中看不到低层次的细节,只能看到一个简化的模型。
有些类似于面向对象设计模式里的依赖倒置原则。
3.加速大概率事件
加速大概率事件远比优化小概率事件更能提高性能。大概率事件通常比小概率事件简单,易于提高。这要求设计者需要知道什么事件是经常发生的。
做应用时也是如此,优化经常用到的接口、服务,比优化偶尔用到的接口、服务效果要好很多。
4.通过并行提高性能
没什么好说的。
5.通过流水线提高性能
类比到车间的流水线,每一道工序都有一个专门的人做,而不是一个人全程做下来,下一个人也全程做下来。
6.通过预测提高性能
假定从误预测恢复代价不高,并且预测的准确率相对较高,则通过猜测的方式提前开始某些操作,要比等到确切知道这些操作应该启动时才开始要快一些。
7.存储器层次
速度越快的往往容量越小,也越昂贵;速度越慢的往往容量越大,也越便宜。
8.通过冗余提高可靠性
任何一个物理器件都有可能失效,因此可以通过使用冗余部件的方式提高系统的可靠性。
在分布式服务之下也是如此,一个服务如果意外终止没有替代者,灾难将是致命的。如果有两个服务被调度就可以保证可靠性。