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

问题描述

| 我使用的是使用ѭ0编译的软件包。 由于对代码的某些函数调用是我程序中最慢的部分,所以我想知道ѭ1可能是罪魁祸首吗?还是在运行时方面无关紧要?     

解决方法

由于-O3表示积极的内联,而-g表示避免内联,以便调试器可以具有函数地址,因此这些选项有些矛盾。尽管如此,总的来说-O3会获胜,除了更大的二进制文件-以及可能因页面调度或非本地性而产生的较小速度影响-不会产生太大影响。     ,
-g
将使您的代码更大(增加了调试符号的空间),并且将禁用某些优化(例如内联),但可能不会明显慢一些。     ,如果您真正的问题是“为什么这么慢?” 有一个简单的方法可以找出答案。