-O1、-O2:适用于大多数需要提高性能的场景,但-O2比-O1更耗时,生成的代码也更大。 -O3:适用于对性能要求极高,且编译时间不是问题的场景。 -Os:适用于嵌入式系统或内存受限的场景,需要减小生成代码的大小。 -Ofast:适用于需要最大化性能,且可以接受某些不严格遵守IEEE标准的优化的场景。3...
这个优化标识和-O3有异曲同工之妙,当然两者的目标不一样,-O3的目标是宁愿增加目标代码的大小,也要拼命的提高运行速度,但是这个选项是在-O2的基础之上,尽量的降低目标代码的大小,这对于存储容量很小的设备来说非常重要。 为了降低目标代码大小,会禁用下列优化选项,一般就是压缩内存中的对齐空白(alignment padding) ...
gcc -O0 -O1 -O2 -O3 -Os 编译优化等级 GCC提供了大量优化等级,用来对编译时间、目标文件大小、执行效率三个维度进行不同的取舍和平衡 -O0,最少的优化。(这是默认的编译选项)(可以最大程度上配合产生代码调试信息,可以在任何代码行打断点,特别是死代码处) -O0,最少的优化。(这是默认的编译选项)(可以最...
O1 优化会消耗少多的编译时间,它主要对代码的分支,常量以及表达式等进行优化。 O2 会尝试更多的寄存器级的优化以及指令级的优化,它会在编译期间占用更多的内存和编译时间。 O3 在 O2 的基础上进行更多的优化,例如使用伪寄存器网络,普通函数的内联,以及针对循环的更多优化。 Os 主要是对代码大小的优化,我们基本不用...
-O3优化着重于最大化程序性能,但可能导致编译时间显著增加。 选择合适的优化等级取决于具体的应用场景和性能需求。-O1提供了基础的优化,适用于快速编译和调试;-O2是一个平衡点,适用于大多数生产环境;而-O3提供了最高级别的优化,适合对性能有极高要求的场景。开发者应根据具体需求选择最合适的优化级别,以达到最佳的...
O0 -->> O1 -->> O2 -->> O3 -O0表示没有优化,-O1为缺省值,-O3优化级别最高 英文解析: `-O ' `-O1 ' Optimize. Optimizing compilation takes somewhat more time, and a lot more memory for a large function. With `-O ', the compiler tries to reduce code size and execution ...
-O2:这是一个中等优化级别,除了-O1中的优化外,还包括了更多的优化技术,如循环展开、函数克隆等。这个级别的优化通常会增加编译时间,但可以提高程序的运行速度。 -O3:这是一个较高的优化级别,包括了-O2中的所有优化,并启用了更多的优化选项,如自动向量化、过程间优化等。这个级别的优化可能会导致较长的编译时间,...
GCC优化级别包括-O0、-O1、-O2、和-O3,这些优化等级旨在提高程序的运行效率和执行速度。-O1、-O2、和-O3 三个级别分别代表了不同的优化程度,随着优化级别的升高,编译器会尝试更多的优化策略以进一步提高程序的性能,但也可能会导致编译时间的增加和调试难度的提升。核心在于兼顾编译时间与运行效率、资源使用优化、以...
1. gcc中指定优化级别的参数有:-O0、-O1、-O2、-O3、-Og、-Os、-Ofast。 2. 在编译时,如果没有指定上面的任何优化参数,则默认为 -O0,即没有优化。 3. 参数 -O1、-O2、-O3 中,随着数字变大,代码的优化程度也越高,不过这在某种意义上来说,也是以牺牲程序的可调试性为代价的。 4. 参数 -Og 是...