代码未执行会降低程序速度

时间:2015-07-21 11:42:26

标签: c

我有一行代码,它位于if语句中,目前我从未配置它。它大大减慢了我的程序。它只是一个print语句,但是如果我只是在这个语句中声明一个变量就可以完美地运行。我不明白,因为这行代码从未执行过,所以为什么它会减慢我的程序。

很抱歉缺少代码,但程序非常大,所讨论的代码行只是一个if语句。

这可能是分支预测问题。它肯定与编译器有关吗?

1 个答案:

答案 0 :(得分:1)

如果你有一个条件语句控制这一行的执行流程...(包含在if中的行)...那么在运行你的程序的CPU中可能会进行一些分支预测。 即使没有分支预测问题,也必须每次都测试条件。

如果这是关于调试打印,请更改为使用预处理器逻辑,以便在您不进行调试时,永远不会将语句和周围的if-branch编译到生成的可执行文件中。 有些东西:

#ifdef DEBUG
your_statement_here
#endif

缺点是你不能在运行时打开和关闭调试,但你想要性能,对吧? :)