使用>之间是否有任何性能差异并且> =在循环中

时间:2015-12-16 06:25:51

标签: java c loops conditional

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

我看过2种检查方法

1。 i > x i < x

第二个approch是

2。 i >= x i <= x

在逻辑比较中,这两种方法是否有任何性能差异。

两个操作所需的执行时间是否有任何差异。即>和&gt; =?

3 个答案:

答案 0 :(得分:4)

这两个语句之间的性能差异很小非常,但两个语句及其逻辑流程之间存在显着差异。

例如:

  • 如果你的循环一直持续到i <= 20,你就会循环到i == 20
  • 如果你的循环一直持续到i < 20,你就会循环到i == 19

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

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

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

这样做

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

保存+1计算。

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