标题:
GCC编译器使用(2)
[打印本页]
作者:
yuyang911220
时间:
2016-8-5 17:43
标题:
GCC编译器使用(2)
四、优化选项GCC具有优化代码的功能,主要的优化选项包括如下:
-O0:不进行优化处理。
-O或-O1:进行基本的优化,这些优化在大多数情况下都会使程序执行得更快。
-O2:除了完成-O1级别的优化外,还要一些额外的调整工作,如处理器指令调度等,这是GNU发布软件的默认优化级别。√
-O3:除了完成-O2级别的优化外,还进行循环的展开以及其他一些与处理器特性相关的优化工作。
-Os:生成最小的可执行文件,主要用于在嵌入式领域。
一般来说,优化级别越高,生成可执行文件的运行速度也越快,但消耗在编译上的时间就越长,因此在开发的时候最好不要使用优化选项,到软件发行或开发结束的时候才考虑对最终生成的代码进行优化。
-finline-functions:允许编译器将一些简单的函数在其调用处展开。
-funswitch-loops:将循环体中值不改变的变量移到循环体外。
实例:给出一段代码,使用gcc进行编译,同时比较优化前后执行程序所花的时间(test3.c)
#include<stdio.h>int main(){ int i, j, x; x = 0; for(i = 0; i < 100000; i++) { for(j = i; j > 0; j--) { x += j; } } return 0;}
运行后的结果如下:
可以看到,优化的效果十分的显著
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0