使用-g进行编译会导致代码变慢吗?

时间:2011-04-13 22:38:51

标签: optimization gcc

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

由于对该代码的某些函数调用是我程序中最慢的部分,我想知道-g是否可能是罪魁祸首?或者它应该在运行时无关紧要?

3 个答案:

答案 0 :(得分:2)

因为-O3意味着积极的内联,而-g意味着避免内联,所以调试器可以有函数地址,这些选项有点不一致。尽管如此,一般来说-O3胜利,除了一个稍微大一点的二进制 - 以及可能来自分页或非局域性的次要速度效应 - 它应该没有太大的区别。

答案 1 :(得分:2)

-g会使您的代码更大(为调试符号增加空间)并禁用内联等一些优化,但可能不会慢得多。

答案 2 :(得分:0)

如果你真正的问题是“它为什么慢?” there's an easy way to find out.