为什么x = x + 1比x + = 1慢?

时间:2015-08-15 18:08:48

标签: php performance increment

我是一名PHP程序员。我总是倾向于使用x += 1;而不是x = x + 1;

但我仍然不明白为什么人们说x += 1;的执行速度比x = x + 1;快。

(编者注:这个问题最初没有指定PHP,因此有关C ++编译器的评论和答案。)

3 个答案:

答案 0 :(得分:4)

http://3v4l.org/GjPvL/vld#tabs会告诉你答案。

$x += 1;被解释为ASSIGN_ADD

$x = $x + 1;具有单独的添加和分配操作,并使用临时变量。

操作码越少,运行速度越快(在大多数情况下)。

请注意,如果您通过代码优化启用opcache,则会优化$x = $x + 1;以使用ASSIGN_ADD。

答案 1 :(得分:1)

+=就是所谓的syntactic sugar。这对开发人员来说非常方便。这两个陈述在逻辑和性能方面应该有相同的结果。

答案 2 :(得分:1)

体面的编译器会接受

x = x +1
x += 1
x++

是相同的,最后编译相同的代码,因此没有任何区别。