在循环中使用 > 和 >= 之间是否存在任何性能差异
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
计算。
除此之外,大多数处理器都有 小于 和 小于或等于 指令 - 因此使用一个或另一个没有影响关于性能。
在循环中,我们保持终止条件,并在每次通过时检查这些条件。
我看过 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
计算。
除此之外,大多数处理器都有 小于 和 小于或等于 指令 - 因此使用一个或另一个没有影响关于性能。