未执行的代码会减慢程序速度

标签 c

我有一行代码,位于 if 语句中,但目前我配置的方式从未满足过该条件。它大大减慢了我的程序速度。它只是一个打印语句,但是如果我只是在该语句中声明一个变量,它就可以完美运行。我不明白,因为这行代码从未执行过,为什么它会减慢我的程序速度。

很抱歉缺少代码,但程序非常大,并且有问题的代码行只是一个 if 语句。

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

最佳答案

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

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

#ifdef DEBUG
your_statement_here
#endif

缺点是您无法在运行时打开和关闭调试,但您想要性能,对吗? :)

关于未执行的代码会减慢程序速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31538094/

相关文章:

c++ - 防止在 C++ 中递归调用 main()

c - 在c中实现维特比算法哪种更好?

c - 取消引用指针的后增量?

c - 用其他字符的框架在 C 中编程矩形

c++ - 如何找到样本信号在主信号中的位置?

c++ - 部署一个用VS2010编译的C程序

C 的字符和字符串

c - 如何从具有与学生完全相同的索引的文件中打印一行?

在 C 中将字符串值转换为等效的 int

c++ - 如何在 C/C++ 中使用磁带进行操作?