Optimization 使用-g编译是否会导致代码变慢?

Optimization 使用-g编译是否会导致代码变慢?,optimization,gcc,Optimization,Gcc,我使用的是一个使用gcc-O3-g编译的包 由于对该代码的一些函数调用是我程序中最慢的部分,我想知道-g是否是罪魁祸首?或者,就运行时间而言,这不重要吗 因为-O3意味着积极的内联,而-g意味着避免内联,以便调试器可以拥有函数地址,所以这些选项有些不一致。尽管如此,总的来说-O3获胜,除了一个较大的二进制文件——以及可能来自分页或非局部性的较小的速度影响——它应该不会有太大的区别。-g将使您的代码更大(为调试符号添加空间),并将禁用一些优化,如内联,但速度可能不会太慢。如果你真正的问题是“为什么

我使用的是一个使用
gcc-O3-g
编译的包


由于对该代码的一些函数调用是我程序中最慢的部分,我想知道
-g
是否是罪魁祸首?或者,就运行时间而言,这不重要吗

因为-O3意味着积极的内联,而-g意味着避免内联,以便调试器可以拥有函数地址,所以这些选项有些不一致。尽管如此,总的来说-O3获胜,除了一个较大的二进制文件——以及可能来自分页或非局部性的较小的速度影响——它应该不会有太大的区别。

-g
将使您的代码更大(为调试符号添加空间),并将禁用一些优化,如内联,但速度可能不会太慢。

如果你真正的问题是“为什么速度慢?”

好吧,你有没有试着去掉
-g
标志,重新测量性能?@Oli:如果答案是“没有,因为-O3打开了,所以没有办法有问题”,那么我就不会费心去测试了。但是考虑到答案有点模糊,我想我会做这个测试。好的,确实没有什么区别,尽管这些函数被调用了1亿次。