0

下面的代码预计会被执行多次

m_bool = true; //member variable

并且在执行上述代码m_bool后将始终保持不变。true

如果改用以下代码,在执行时间方面会更有效吗?

if (!m_bool)
  m_bool = true;
4

1 回答 1

2

如果调用多次完成,if则将变得无缝,因为分支预测器将意识到该模式。

生成的程序集在很大程度上变得无关紧要,因为到达jmp时几乎会被跳过。

如果编译器支持它,您甚至可以使用内在函数(例如__builtin_expect)来提供该条件最有可能为真的额外提示。

于 2013-06-08T17:56:16.437 回答