c/c++与函数有关的优化
一、函数调用的优化
调用函数需要对内存进行多次访问,因此对函数的调用通常很费时,容易造成程序效率低下;
在函数调用过程中,如果每一次函数的调用结果都相同且需要多次调用时,可以将几次调用的结果进行多次累加,以避免函数多次调用带来的效率低下;
二、变量存储优化
对频繁使用的变量和只在一定范围内的变量,尽可能将其设定为局部变量,因为局部变量会被存储在寄存器中,而全局变量则被存储在了内存数据段上,cpu对内存的访问速度远远低于访问本身寄存器。对比一下:
先来看第一个程序:
int i; foo() { int a[10]; for(i=0;i<100;i++) a[i]=i; }
这段代码每次循环都要访问一次内存中的i,所以效率比较低
再来看下一个程序:
foo() { int i; int a[i]; for(i=0;i<100;i++) a[i]=i; }
由于i是局部变量,会被编译器存放在寄存器上,每次使用i都是从寄存器中读取,因而相比上一个程序效率要高一些