手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>C/C++>列表

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

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
选择好的算法,小心地实现,同时确定程式不做额外的事。例如,即使世界上最优化的字符复制循环也比不上不用复制。当担心效率时,要保持几样事情在视野中,这很重要。首先,虽然效率是个很流行的话题,他并不总是象人们想的那样重要。大多数程式的大多数代码并不是时间紧要的。当代码不是时间紧要时,通常把代码写得清楚和可移植比达到最大效率更重要。记住,电脑运行得很很快,那些看起来“低效率”的代码,也许能够编译得比较有效率,而运行起来也没有明显的延时。试图预知程式的“热点”是个很困难的事。当要关心效率时,使用 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
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!