高效编程体会一

计算机性能的飞速提高似乎使很多人忘记了 编写高效程序的必要性,现在内存也大了,CPU也快了,很多人都觉得只要系统能够实现功能就可以了,我曾经也犯过这样的错误,但是我想说,如果一个程序员只停留在这个阶段是很初级的,疏不知在编写高效程序的过程中才可以真正体会到编程的乐趣,以后要多总结一些高效编程的心得,今天先写几点,主要是针对C/C++语言的:

第一,以空间换时间。在计算机程序中,时间和空间之间的矛盾是永恒的,对于一些实时性要求比较高的程序而言,用牺牲内存空间的方式来换取运行效率是可选的,在C/C++程序中常用的宏定义就是一种常用的空间换时间的方法,对于一些简单的程序处理,如果用函数来实现则会有一定的CPU时间开销,因为程序在调用函数的过程中会有程序现场保护和恢复的过程,具体是压栈出栈的操作,而使用宏定义则是在程序预编译的时候将宏定义代码展开,然后执行编译,这样会使程序的代码膨胀,有一定的内存空间开销。

第二,数学方法解决问题。对于一些可以通过数学公式直接得出结果的运算就没有必要使用计算机来一步步的计算,比如计算自然数1到100的和,则可以用等差数列的求和公示来计算。

第三,使用位操作。在计算机中,bit位是最小的数据单位,理论上说,任何一个运算或者操作都可以通过位运算来实现,相对于常见的加减乘除运算,位运算的效率更高,所以必要的时候可以考虑使用位运算来提高运输效率,比如100/8可以表示成100>>3。

第四,必要时候嵌入汇编。汇编语言是针对特定机器的高级语言,相对于通用的高级语言而言,汇编语言的执行效率是最高的,但是如果使用了汇编程序会降低程序的可移植性,慎用!!

推荐一本书《Sams-C++.Footprint.and.Performance.Optimization》,翻译过来叫《C++高效编程:内存与性能优化》,可以好好研究一下!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值