效率更高
if ($n-1 < $x)
或
if ($n <= $x)
有人知道吗?
答案 0 :(得分:14)
可以忽略不计,但if ($n <= $x)
更清晰。
答案 1 :(得分:6)
可能($n <= $x)
因为少了一次操作(没有减法)。但是,这仅对整数而言是相同的,差异很可能是微不足道的。
答案 2 :(得分:4)
它不应该是显着的速度提升,但后来对我来说似乎更强可读。第一个也有一个额外的减法部分。
答案 3 :(得分:3)
在第一个实例中,您执行两个操作(减去然后比较),而在第二个实例中,您只执行一个(比较)。我认为可以说第二种性能更高。无论如何,第一种形式是非标准的,我不知道为什么它会被用作第二种形式的替代品。
答案 4 :(得分:3)
都不是。 PHP没有强制实现说天气它的字节码,直接从AST解释,或编译为机器代码。事实上,有十亿种不同的实现,主要的实现可能会像语言和API的其他部分一样一直在变化。
即使在x86的汇编级别,这两个操作也没有区别。证明:
x&lt; ÿ
cmp eax, y
jb its_true
x&lt; = y
cmp eax, y
jbe its_true
JBE
是JC
IIRC的同义词,它只检查单个标志。这两个条件分支只是检查是否设置了标志。
这些操作可以影响速度的唯一真正方法是,你可以使运算和均等的运算小于/大于均等,即使这样,速度差也应该可以忽略不计。
答案 5 :(得分:1)
由于您使用的是高级脚本语言,因此执行该操作不是处理器操作的问题。将花费更多时间来解析代码,验证变量类型以及管理变量内存和许多其他事情。
即使没有实际差异,我猜第二个会更快,因为语言表达更简单。
术语$ n-1在一个更复杂的部分中,以理解&lt; =。数学运算符只有几个选项(&gt;,&lt;,&lt; =,==,&gt; =,!=,...),但术语$ n-1需要更复杂的分析,因为它必须首先用减号分开,然后分析两个部分(也可以是函数调用,常量,变量,另一个复杂表达式......)