预计阅读本页时间:-
13.4 性能
所有事情都是平等的,一个快速的操作系统比一个慢速的操作系统好。然而,一个快速而不可靠的操作系统还不如一个慢速但可靠的操作系统。由于复杂的优化经常会导致程序错误,有节制地使用它们是很重要的。尽管如此,在性能是至关重要的地方进行优化还是值得的。在下面几节我们将看一些一般的技术,这些技术在特定的地方可以用来改进性能。
13.4.1 操作系统为什么运行缓慢
在讨论优化技术之前,值得指出的是许多操作系统运行缓慢在很大程度上是操作系统自身造成的。例如,古老的操作系统,如MS-DOS和UNIX版本7在几秒钟内就可以启动。现代UNIX系统和Windows Vista尽管运行在快1000倍的硬件上,可能要花费几分钟才能启动。原因是它们要做更多的事情,有用的或无用的。看一个相关的案例。即插即用使得安装一个新的硬件设备相当容易,但是付出的代价是在每次启动时,操作系统都必须要检查所有的硬件以了解是否存在新的设备。这一总线扫描是要花时间的。
一种替代的(并且依作者看来是更好的)方法是完全抛弃即插即用,并且在屏幕上包含一个图标标明“安装新硬件”。当安装一个新的硬件设备时,用户可以点击图标开始总线扫描,而不是在每次启动的时候做这件事情。当然,当今的系统设计人员是完全知道这一选择的。但是他们拒绝这一选择,主要是因为他们假设用户太过愚笨而不能正确地做这件事情(尽管他们使用了更加友好的措辞)。这只是一个例子,但是还存在更多的事例,期望让系统“用户友好”(或者“防傻瓜”,取决于你的看法)却使系统始终对所有用户是缓慢的。
广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元
或许系统设计人员为改进性能可以做的最大的一件事情,是对于添加新的功能特性更加具有选择性。要问的问题不是“用户会喜欢吗?”而是“这一功能特性按照代码大小、速度、复杂性和可靠性值得不计代价吗?”只有当优点明显地超过缺点的时候,它才应该被包括。程序员倾向于假设代码大小和程序错误计数为0并且速度为无穷大。经验表明这种观点有些过于乐观。
另一个重要因素是产品的市场销售。到某件产品的第4或第5版上市的时候,真正有用的所有功能特性或许已经全部包括了,并且需要该产品的大多数人已经拥有它了。为了保持销售,许多生产商仍然继续生产新的版本,具有更多的功能特性,正是这样才可以向现有的顾客出售升级版。只是为了添加新的功能特性而添加新的功能特性可能有助于销售,但是很少会有助于性能。