C 应用程序性能优化方法
1、1、根据特定的使用环境,选择合适的数据结构,比如用于接收网络数据的消息队列用链接就比其它数据结构好,没有最好的数据结构,只有最合适的数据结构
2、2、能使用指针操作的尽量使用指针操作,一般来说,指针比较灵活简洁,对于大部分的编译器,使用指针生成的代码更短,执行效率更高。
3、3、递归调用尽量换成内循环或者查表解决,因为频繁的函数调用也是很浪费资源的
4、4、还是就是一些针对运算上的细节优化了,很多初学者是忽视了,具体是下面这些情况
1)、求余、求2n方运算
a=a%8; --》a=a&7;
原因是位操作只需一个指令周期即可完成
2)、平方运算
a=pow(a, 2.0);--》 a=a*a;
原因是乘法运算比求平方运算快得多
3)、用移位实现乘除法运算
a=a*4; ---》a=a<<2;
b=b/4;---》b=b>>2;
原因是用移位的方法得到代码比调用乘除法子程序生成的代码效率高
4)、避免不必要的整数除法
int i, j, k, m;
m = i / j / k;---》m = i / (j * k);
原因是整数除法是整数运算中最慢的,所以应该尽可能避免
5)、使用增量或减量操作符
x=x+1;--》++x;
原因是增量符语句比赋值语句更快
6)、使用复合赋值表达式
x+=1;
能够生成高质量的程序代码
7)、提取公共的子表达式
float a, b, c, d, e, f;
e = b * c / d;
f = b / d * a;
原因是减少重复的计算,虽然有些编译支持,但是也应该养成这种习惯
其它就不一一列举了,有兴趣的自己可以深入了解下
5、5、其它还有很多,比如循环的优化、函数优化、公共执行代码的优化,变量的优化,内存操作优化,cpu使用优化等等,有好多细节的知识,平时要多多接触这方面的知识,慢慢积累,体验让代码效率提升毫秒级的快感吧