c/c++与函数有关的优化

一、函数调用的优化

调用函数需要对内存进行多次访问,因此对函数的调用通常很费时,容易造成程序效率低下;

在函数调用过程中,如果每一次函数的调用结果都相同且需要多次调用时,可以将几次调用的结果进行多次累加,以避免函数多次调用带来的效率低下;

二、变量存储优化

对频繁使用的变量和只在一定范围内的变量,尽可能将其设定为局部变量,因为局部变量会被存储在寄存器中,而全局变量则被存储在了内存数据段上,cpu对内存的访问速度远远低于访问本身寄存器。对比一下:

先来看第一个程序:

int i;
foo()
{
int a[];
for(i=;i<;i++)
a[i]=i;
}

这段代码每次循环都要访问一次内存中的i,所以效率比较低

再来看下一个程序:

foo()
{
int i;
int a[i];
for(i=;i<;i++)
a[i]=i;
}

由于i是局部变量,会被编译器存放在寄存器上,每次使用i都是从寄存器中读取,因而相比上一个程序效率要高一些

上一篇:2018牛客网暑期ACM多校训练营(第二场)J Farm(树状数组)


下一篇:ACM/ICPC 之 DP-基因相似度(POJ1080-ZOJ1027)