我是一名PHP程序员。我总是倾向于使用x += 1;
而不是x = x + 1;
。
但我仍然不明白为什么人们说x += 1;
的执行速度比x = x + 1;
快。
(编者注:这个问题最初没有指定PHP,因此有关C ++编译器的评论和答案。)
答案 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++
是相同的,最后编译相同的代码,因此没有任何区别。