在PHP中什么是更有效的n-1< x OR n< = x

时间:2010-08-02 18:45:18

标签: php

效率更高

if ($n-1 < $x)

if ($n <= $x)

有人知道吗?

6 个答案:

答案 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

JBEJC IIRC的同义词,它只检查单个标志。这两个条件分支只是检查是否设置了标志。

这些操作可以影响速度的唯一真正方法是,你可以使运算和均等的运算小于/大于均等,即使这样,速度差也应该可以忽略不计。

答案 5 :(得分:1)

由于您使用的是高级脚本语言,因此执行该操作不是处理器操作的问题。将花费更多时间来解析代码,验证变量类型以及管理变量内存和许多其他事情。

即使没有实际差异,我猜第二个会更快,因为语言表达更简单。

术语$ n-1在一个更复杂的部分中,以理解&lt; =。数学运算符只有几个选项(&gt;,&lt;,&lt; =,==,&gt; =,!=,...),但术语$ n-1需要更复杂的分析,因为它必须首先用减号分开,然后分析两个部分(也可以是函数调用,常量,变量,另一个复杂表达式......)