利用GCC优化代码

 忽然发现GCC还有优化代码的功能,而且很给力。ide

GCC后面能够跟-O1 -O2 -O3这三个选项来优化代码,注意,这里是字母O,不是数字0-O3的优化程度最高。函数

 

-O1 是默认值,回减少代码的尺寸和运行时间,但不会增长编译时间优化

-O2 跟-O1不一样的地方是-O2增长了优化:不须要额外的空间去加速交换spa

-Os  比-O2更进了一步,但忽略了有可能增长代码长度的部分,而且增长了减少代码长度的优化debug

-O3 跟-O2相比,增长了内联函数和重名register,不过可能致使编译出来的二级制程序不能debugblog

另外,GCC还有一些优化参数,-mcpu 会针对某一型号的CPU进行调优而不会致使它不能在另外的CPU上运行it

而-march会致使编译的时候,只采用一个型号的CPU上的指令,会致使不兼容io

redhat下的软件编译通常都会采用编译

-O2  -march=i386 -mcpu=i686class

 

平时不要优化,到最后发布的时候再优化,下面用一个图来讲明优化的效果。

先附上代码:

 

#include <stdio.h>

int main()

{

int counter;

int ending;

int temp;

int five;

for(counter=0;counter<2*100000000*9/18+5131;counter+=(5-3)/2)

{

temp=counter/15302;

ending=counter;

five=5;

}

printf("five =%d ;ending =%d \n",five,ending);

return 0;

}

 

从这张图上就能够看出,效果很给力!

相关文章
相关标签/搜索