正在安装 apt-build。看到代码优化分为三个级别:“轻度”、“中度”和“强度”。系统警告“强度”会导致系统不稳定,所以我选择了“中度”。
优化级别之间是否存在明显的差异?
我应该直接去 -O3 吗?
答案1
我想说这几乎不取决于您正在编译的代码。
无论你在那里选择什么,最终都将成为 GCC 的标志,因此GCC 的手册页:
-O
,-O1
。-O
编译器会尝试减少代码大小和执行时间,而不执行任何耗费大量编译时间的优化。
-O2
进一步优化。GCC 执行几乎所有支持的优化,这些优化不涉及空间速度权衡。与 -O 相比,此选项既增加了编译时间,又增加了生成代码的性能。
-O3
进一步优化。-O3
打开由指定的所有优化,并-O2
打开-finline-functions
、、、和选项。-funswitch-loops
-fpredictive-commoning
-fgcse-after-reload
-ftree-vectorize
-fipa-cp-clone
你可以运行
gcc -O<1-3> -Q --help=optimizers
查看每个优化级别的激活的优化方法集。
它们越激进,编译器搞砸事情的风险就越大(不应该发生,我不知道事情发生的可能性有多大,但如果你想安全起见,我建议你遵循 apt-build 的建议不是使用-O3
/强的)。