我使用的是使用gcc -O3 -g
编译的包。
由于对该代码的某些函数调用是我程序中最慢的部分,我想知道-g
是否可能是罪魁祸首?或者它应该在运行时无关紧要?
答案 0 :(得分:2)
因为-O3意味着积极的内联,而-g意味着避免内联,所以调试器可以有函数地址,这些选项有点不一致。尽管如此,一般来说-O3胜利,除了一个稍微大一点的二进制 - 以及可能来自分页或非局域性的次要速度效应 - 它应该没有太大的区别。
答案 1 :(得分:2)
-g
会使您的代码更大(为调试符号增加空间)并禁用内联等一些优化,但可能不会慢得多。
答案 2 :(得分:0)
如果你真正的问题是“它为什么慢?” there's an easy way to find out.