编译器的优化选项有4个级别 —O0: 默认情形,不进行优化 (大写字母O后接数字0) -O1-O: 较低的优化级别,编译器会尝试减少空间大小和优化程序的执行时间,但不执行需要消耗大量编译时间的优化 -O2: 较高的优化级别,牺牲更多编译时间来提高程序的性能
O0 选项不进行任何优化,在这种情况下,编译器尽量的缩短编译消耗(时间,空间),此时,debug 会产出和程序预期的结果。当程序运行被断点打断,此时程序内的各种声明是独立的,我们可以任意的给变量赋值,或者在函数体内把程序计数器指到其他语句,以及从源程序中 精确地获取你期待的结果. ...
O2会尝试更多的寄存器级的优化以及指令级的优化,它会在编译期间占用更多的内存和编译时间。 O3在O2的基础上进行更多的优化,例如使用伪寄存器网络,普通函数的内联,以及针对循环的更多优化。 Os主要是对代码大小的优化,我们基本不用做更多的关心。 通常各种优化都会打乱程序的结构,让调试工作变得无从着手。并且会打乱执行...
O2会尝试更多的寄存器级的优化以及指令级的优化,它会在编译期间占用更多的内存和编译时间。 O3在O2的基础上进行更多的优化,例如使用伪寄存器网络,普通函数的内联,以及针对循环的更多优化。 Os主要是对代码大小的优化,我们基本不用做更多的关心。 通常各种优化都会打乱程序的结构,让调试工作变得无从着手。并且会打乱执行...
-O设置一共有五种:-O0、-O1、-O2、-O3和-Os。 除了-O0以外,每一个-O设置都会多启用几个选项,请查阅gcc手册的优化选项章节,以便了解每个-O等级启用了哪些选项及它们有何作用。 让我们来逐一考察各个优化等级: -O0:这个等级(字母“O”后面跟个零)关闭所有优化选项,也是CFLAGS或CXXFLAGS中没有设置-O等级时...
◼ -O/-O0:无优化(默认) ◼ -O1:使用能减少目标文件大小以及执行时间并且不会使编译时间明显增加的优化。 该模式在编译大型程序的时候会花费更多的时间和内存。在-O1 下:编译会尝试减少代 码体积和代码运行时间,但是并不执行会花费大量时间的优化操作。
-O0——默认不优化(若要生成调试信息,最好不优化)。 -O1——简单优化,不进行速度与空间的权衡优化。 -O2——在O1简单优化的基础进一步优化,包括了执行代码的调度优化。若要优化,该选项最适合,它是GNU发布软件的默认优化级别。 -Os——生成最小执行文件。
1. gcc中指定优化级别的参数有:-O0、-O1、-O2、-O3、-Og、-Os、-Ofast。 2. 在编译时,如果没有指定上面的任何优化参数,则默认为 -O0,即没有优化。 3. 参数 -O1、-O2、-O3 中,随着数字变大,代码的优化程度也…
GCC在线编译器可以帮助我们进行代码优化,以下是一些方法:1. 使用适当的编译选项:在GCC编译器中,可以使用一些编译选项来指定代码优化级别,例如-O0、-O1、-O2、-O3等。可以根据具体情况...