apt-build 优化级别有哪些不同的用途?

apt-build 优化级别有哪些不同的用途?

正在安装 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/强的)。

相关内容