在循环中,我们保持终止条件,并在每次传递中检查这些条件。
我看过2种检查方法
1。 i > x
或 i < x
第二个approch是
2。 i >= x
或 i <= x
在逻辑比较中,这两种方法是否有任何性能差异。
两个操作所需的执行时间是否有任何差异。即>和&gt; =?
答案 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
计算。
除此之外,大多数处理器都有小于和小于或等于的指令 - 因此使用其中一个对性能没有影响。