【发布时间】:2012-02-14 13:38:31
【问题描述】:
X 几乎 99.9% 的时间都是正确的,但我还需要处理 Y 和 Z。尽管 X 条件的主体是空的,但我认为如果省略 X 条件,它应该比可能检查其他 2 个条件 Y 和 Z 更快。你怎么看?
if (likely(X))
{
}
else if (unlikely(Y))
{
...
}
else if (unlikely(Z))
{
...
}
【问题讨论】:
-
是什么让你觉得你需要担心这个?
-
答案取决于你的逻辑。条件 X 总是 是否暗示非 Y 和非 Z?
-
@PaulR 因为它处于一个非常紧密的循环中。
-
你已经分析过了?
-
@PaulR 的问题是“我需要担心这个吗?”或“最快的方法是什么?”
标签: c++ c gcc if-statement branch-prediction