1.在用linux编译时可以是在gcc或者g++后面加上参数-o1或者-o2来让程序自动优化,小程序可以大大提高运行效率。
2.循环次数尽量少,可以提高程序速度,比如是否可以一次循环处理两次循环的任务。
3.尽量减少函数的调用,
第二种程序效果更好,因为vec_length只调用了一次。
3.在循环时更改值,最好用变量,减少用指针,以下面这个程序解释:
int test1()
{
int b=0;
for (int i=0; i<10; i++)
b=b+2;
return 0;
}
int test2()
{
int a=0;
int *b=a;
for (int i=0; i<10; i++)
*b=*b+2;
return 0;
}
test1循环中,汇编代码执行如下过程:
只需要把变量里的值从栈中拿出来一次,然后就一直放在寄存器中循环累加了
test1循环中,汇编代码执行如下过程:
每次循环都要把指针指向的地址中的值拿出来加一次,然后再放回指针指向的地址当中,相当于每次循环都比test1多做一次取值和放值。
4.对于条件判断,使用三元运算符要比if else速度更快,主要是因为编译器的问题。