级的优化。使用-Os 是不推荐的。 ◼ -O3: 打开所有 -O2 的优化选项并且增加 -finline-functions, -funswitch-loops,- fpredictive-commoning, -fgcse-after-reload and -ftree-vectorize 优化选项。这是最高最危险 的优化等级。用这个选项会延长编译代码的时间,并且在使用 gcc4.x 的系统里不应全局 启用。
GCC 4.6.4以上版本,有**-O0、-O1、-O2、-O3、-Os、-Ofast、-Og**几个优化等级,参数 -O1、-O2、-O3 中,随着数字变大,代码的优化程度也越高,不过这在某种意义上来说,也是以牺牲程序的可调试性为代价的。 所有的优化选项如下: -faggressive-loop-optimizations -falign-functions[=n] -falign-jumps[=...
在gcc 4.x.中使用-O3是不推荐的。 -Os:这个等级用来优化代码尺寸。其中启用了-O2中不会增加磁盘空间占用的代码生成选项。这对于磁盘空间极其紧张或者CPU缓存较小的机器非常有用。但也可能产生些许问题,因此软件树中的大部分ebuild都过滤掉这个等级的优化。使用-Os是不推荐的。
这个优化标识和-O3有些异同,同是,都是基于-O2进行的更升一级的优化,但是,-O3的目标是宁愿增加目标代码的大小,也要拼命的提高运行速度;-Os是尽量的降低目标代码的大小,这对于存储容量很小的设备来说非常重要。例如开启的优化标志中,有-fprefetch-loop-arrays -freorder-blocks-algorithm = stc等在内存中强制对齐...
-Os:这个选项类似于-O2,但同时增加了对代码大小的优化,适用于对代码大小敏感的应用。 4.调试与优化并存 -Og:这是一种低优化等级,目的是在保持调试信息的同时进行必要的优化,便于调试同时不过度影响性能。 5.高级优化 -Ofast:这是比-O3更激进的优化等级,可能会违反一些标准以保证性能。
7、ign-functions -falign-jumps-falign-loops -falign-labels-ftree-vrp-ftree-pre还要注意 -fgcse 下关于请求 -O2 优化等级的用于计算 goto 的程序。-03 :更进一步优化。-03打开-02指定的所有优化操作并且打开:-finline-functions-funswitch-loops-fgcse-after-reload优化项。-Os:针对程序空间大小优化(多用...
-Os:专门优化目标文件大小,执行所有的不增加目标文件大小的-O2优化选项.并且执行专门减小目标文件大小的优化选项. -O3: 打开所有-O2的优化选项并且增加 -finline-functions, -funswitch-loops,-fpredictive-commoning, -fgcse-after-reload and -ftree-vectorize优化选项. ...
优化选项用于控制编译器对代码的优化等级。比较常用的是-O2和-Os。详细的介绍请查看官网Optimize-Options。 1 -O0/-Og -O0是默认选项,不执行任何优化。在编译调试版本的时候,一般使用-O0,可以确保调试执行过程完全和代码一致(如果使用优化选项,根据源文件设定的断点和经过优化编译得到的程序可能对不上,所以不能准...
gcc – o2 这个优化级别是o1的进阶,在上一级的基础上会进行更严格的细分,最重要的是加入了寄存器的使用。寄存器是cpu中重要的组成部分,此外还有运算器和控制器,计算机顾名思义,要进行各种庞杂的计算,由于cpu速度较快,所以计算的中间结果都会保存在寄存器中,这样可以大大提高系统的效率,但是寄存器造价高昂,数量有限,...