10

gcc 的发行说明在 -Og 上有点含糊:

它满足了对快速编译和卓越调试体验的需求,同时提供了合理水平的运行时性能。开发的整体体验应该优于默认优化级别-O0。

“开发的整体经验”是否包括编译时间?如果我不需要调试符号并且正在优化编译时间,我应该使用 -O0 还是 -Og?

4

3 回答 3

0

“开发的整体经验”是否包括编译时间?

我认为确实如此,但不是在这个非常具体的情况下。

如果我不需要调试符号并且正在优化编译时间,我应该使用 -O0 还是 -Og?

-O0.

于 2013-03-21T19:51:46.787 回答
0

如果我不需要调试符号并且正在优化编译时间,我应该使用 -O0 还是 -Og?

如果调试符号的存在与否无关紧要,请对这两个选项进行计时并查看哪个更快。

于 2013-03-21T20:48:05.313 回答
-3

由于-Og编译器必须构造和写出额外的数据(用于调试),因此需要更长的时间。只需编译为汇编器(使用gcc -S -Og等)并进行比较。-O0但是无论和运行时之间有什么区别,都可能与启动时间及其完整的机器-Og相形见绌。gcc

如果您想要编译时间,也许您应该考虑tcc使用 C。也许LLVM对于 C++ 更快。

于 2013-03-25T02:32:50.117 回答