选择好的算法,小心地实现,同时确定程式不做额外的事。例如,即使世界上最优化的字符复制循环也比不上不用复制。当担心效率时,要保持几样事情在视野中,这很重要。首先,虽然效率是个很流行的话题,他并不总是象人们想的那样重要。大多数程式的大多数代码并不是时间紧要的。当代码不是时间紧要时,通常把代码写得清楚和可移植比达到最大效率更重要。记住,电脑运行得很很快,那些看起来“低效率”的代码,也许能够编译得比较有效率,而运行起来也没有明显的延时。试图预知程式的“热点”是个很困难的事。当要关心效率时,使用 profiling 软件来确定程式中需要得到关注的地方。通常,实际计算时间都被外围任务占用了(例如 I/O 或内存的分配),能够通过使用缓冲和超高速缓存来提高速度。即使对于时间紧要的代码,最无效的优化技巧是忙乱于代码细节。许多常被建议的“有效的代码技巧”,即使是很简单的编译器也会自动完成(例如,用移位运算符代替 2 的幂次方乘)。很多的手动优化有可能使代码变得笨重反而使效率低下了,同时几乎不可移植。例如,也许能够在某台机器上提了速,但在另一台机器上去变慢了。任何情况下,修整代码通常最多得到线性性能提高;而更好的算法能够极大地提高程式运行效率。
在修整象 i = i 1 这样的代码前,记住您是在跟编译器打交道。对于 i,i = 1 和 i = i 1,任何好的编译器都会生成完全相同的代码。使用任何一种形式只跟风格有关,而和效率无关。
有关效率的更多讨论,连同当效率很重要时,如何提高效率的建议,能够从以下书中得到:
Kernighan 和 Plauger 的 The Elements of Programming Style [K&P] 中的第七章
Jon Bentley 的 Writing Efficient Programs [Bentley]
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!