[C/C 技巧] 提高程式效率的方法

2008-02-23 05:29:37来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

选择好的算法,小心地实现,同时确定程式不做额外的事。例如,即使世界上最优化的字符复制循环也比不上不用复制。当担心效率时,要保持几样事情在视野中,这很重要。首先,虽然效率是个很流行的话题,他并不总是象人们想的那样重要。大多数程式的大多数代码并不是时间紧要的。当代码不是时间紧要时,通常把代码写得清楚和可移植比达到最大效率更重要。记住,电脑运行得很很快,那些看起来“低效率”的代码,也许能够编译得比较有效率,而运行起来也没有明显的延时。试图预知程式的“热点”是个很困难的事。当要关心效率时,使用 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]


标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 产生随机数的方法

下一篇: Dev-C 编译多文档程式的方法