gcc的发布说明在-Og上有点模糊:
它解决了快速编译和优秀调试体验的需要,同时提供了合理水平的运行时性能。开发的总体经验应该优于默认的优化级别-O0。
“发展的总体经验”是否包括汇编时间?如果我不需要调试符号并为编译时间进行优化,我应该使用-O0还是-Og?
发布于 2013-03-25 02:32:50
使用-Og,编译器必须构造并写出额外的数据(用于调试),因此需要更长的时间。只需编译到汇编程序(使用gcc -S -Og等)并进行比较。但是,无论-O0和-Og运行时之间有什么不同,都可能比启动gcc及其完整的机器的时间相形见绌。
如果您想要编译时间,也许您应该考虑C的tcc,也许LLVM对于C++更快。
发布于 2013-03-21 19:51:46
“发展的总体经验”是否包括汇编时间?
我认为是的,但在这个非常具体的情况下不是这样。
如果我不需要调试符号并为编译时间进行优化,我应该使用-O0还是-Og?
-O0。
发布于 2013-03-21 20:48:05
如果我不需要调试符号并为编译时间进行优化,我应该使用-O0还是-Og?
如果是否存在调试符号并不重要,请对两个选项进行时间安排,并查看哪个选项更快。
https://stackoverflow.com/questions/15556701
复制相似问题