gcc 优化等级说明

摘要:
这是建议的优化级别,除非您有特殊要求-O3:这是最高和最危险的优化级别。自3年以来,gcc的行为发生了巨大变化。x版本。在3。x、 在gcc4中,-O3生成的代码只比-O2生成的代码快一点。x、 它不一定更快。在gcc4。x、 不建议使用。

https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html

gcc 优化等级说明第1张

查查gcc手册就知道了,每个编译选项都控制着不同的优化选项 下面从网络上copy过来的,真要用到这些还是推荐查阅手册
-O设置一共有五种:-O0、-O1、-O2、-O3和-Os。
除了-O0以外,每一个-O设置都会多启用几个选项,请查阅gcc手册的优化选项章节,以便了解每个-O等级启用了哪些选项及它们有何作用。
让我们来逐一考察各个优化等级:
-O0:这个等级(字母“O”后面跟个零)关闭所有优化选项,也是CFLAGS或CXXFLAGS中没有设置-O等级时的默认等级。这样就不会优化代码,这通常不是我们想要的。
-O1:这是最基本的优化等级。编译器会在不花费太多编译时间的同时试图生成更快更小的代码。这些优化是非常基础的,但一般这些任务肯定能顺利完成。
-O2:-O1的进阶。这是推荐的优化等级,除非你有特殊的需求。-O2会比-O1启用多一些标记。设置了-O2后,编译器会试图提高代码性能而不会增大体积和大量占用的编译时间。
-O3:这是最高最危险的优化等级。用这个选项会延长编译代码的时间,并且在使用gcc4.x的系统里不应全局启用。自从3.x版本以来gcc的行为已经有了极大地改变。在3.x,-O3生成的代码也只是比-O2快一点点而已,而gcc4.x中还未必更快。用-O3来编译所有的软件包将产生更大体积更耗内存的二进制文件,大大增加编译失败的机会或不可预知的程序行为(包括错误)。这样做将得不偿失,记住过犹不及。在gcc 4.x.中使用-O3是不推荐的。
-Os:这个等级用来优化代码尺寸。其中启用了-O2中不会增加磁盘空间占用的代码生成选项。这对于磁盘空间极其紧张或者CPU缓存较小的机器非常有用。但也可能产生些许问题,因此软件树中的大部分ebuild都过滤掉这个等级的优化。使用-Os是不推荐的。

gcc 优化等级说明第2张

免责声明:文章转载自《gcc 优化等级说明》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇jq 一个强悍的json格式化查看工具Application.mk文件官方使用说明下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux编程头文件所在路径的问题

一、问题引入 1、头文件与库       当我们在PC主机linux环境下(如ubuntu),编写linux应用程序,然后利用gcc来编译。在源代码的开始位置会写入头文件,那是因为我们使用了系统提供的库函数,例如printf、open、read、write等等。我们会写入类似的内容: #include <stdio.h> #include &...

centos6.5上安装淘宝tfs系统

为了安装淘宝tfs文件系统,查了很多资料。若仅参考淘宝的官方文档,那么安装注定失败,因为在官方文档中很多依赖库并没有明确标出。 为了更方便的安装,我这里只写正确的安装过程,错误的解决就不详细描述了。 第一步:gcc降级 centos6.5上如果用yum安装gcc的话,默认是4.4.7版本。若以在gcc4.4.7的基础上安装tfs的话会出现许多莫名其妙的错,...

字节对齐《c和指针》笔记包含位域结构体的内存对齐(32bit,GCC)

最近使用开发的过程中出现了一个小问题,顺便记录一下原因和方法--字节对齐     C99划定int、unsigned   int和bool可以作为位域类型。但编译器几乎都对此作了扩展,答应其它类型类型的存在。     如果结构体中含有位域(bit-field),总结规则如下:(以下代码在x86 32bit系统上测试,gcc 4.1.2)     1) 如果...

ubuntu13.04下gcc4.5.1的安装

(1)去gcc官网下载源码包http://ftp.gnu.org/gnu/gcc/gcc-4.5.1/gcc-4.5.1.tar.bz2 (2)编译安装gcc之前需要先安装三个库,如果下面命令行不通,对应的都可以到官网下载: $wgetftp://ftp.dti.ad.jp/pub/lang/gcc/infrastructure/gmp-4.3.2.tar...

Qt5.3.2_CentOS6.4_基本编程环境__20160306【勿删,繁琐】

20160306 全程没有f/q ZC:使用的虚拟机环境是:博客园VMwareSkill 的 “CentOS6.4_x86_120g__20160306.rar” 1、 执行命令“gcc -v”,显示: “ [root@centos ~]# gcc -vbash: gcc: command not found[root@centos ~]# ” 说明没有...

Centos7中一次性安装开发者工具

这里使用组安装包,一次性安装所有开发者工具。 1、查看有那些组安装包可用。 yum grouplist | more 2、搜索一下有哪些和development有关。 yum grouplist | grep development 查到以下内容: [root@noi ~]# yum grouplist | grep DevelopmentThere is...