在循环中使用 > 和 >= 之间是否存在任何性能差异

Is there any performance difference between using > and >= in a loop

在循环中,我们保持终止条件,并在每次通过时检查这些条件。

我看过 2 种检查方法

1。 i > x i < x

第二种方法是

2。 i >= x i <= x

在进行逻辑比较时,这两种方法在性能上是否存在差异。

这两个操作所需的执行时间是否有差异。即 > 和 >= ?

这两个语句之间非常几乎没有性能差异,但是这两个语句及其逻辑流程之间存在显着差异。

例如:

  • 如果您有一个 运行 直到 i <= 20 的循环,您将一直循环到 i == 20
  • 如果您有一个 运行 直到 i < 20 的循环,您将一直循环到 i == 19

如果您的条件要求您的迭代值在之前某个特定值停止,请确保您选择最适合它的不等式。

不过,总的来说,如果此布尔语句的 运行 时间或性能有任何差异,则几乎不会引起注意。不应围绕切换这些语句进行任何优化工作。*

*:另外,不要破坏Rule #1 of Optimization.

不,完全没有区别。当编译器将其转换为汇编时,它将它们都转换为相同的 cmp 指令。

有时您更喜欢使用 <= 而不是 <,例如在 for 循环中,我们通常从 0 length-1(例如数组长度),我们使用<。但是如果你还想包括比较值,这里 y,并保持 < 逻辑,你会得到

for (x=0 ; x<y+1 ; x++) {
    ...
}

在执行此操作时

for (x=0 ; x<=y ; x++) {
    ...
}

保存 +1 计算。

除此之外,大多数处理器都有 小于小于或等于 指令 - 因此使用一个或另一个没有影响关于性能。