Php 为什么x=x+;1比x慢+;=1.
我是一名PHP程序员。我总是喜欢使用Php 为什么x=x+;1比x慢+;=1.,php,performance,increment,Php,Performance,Increment,我是一名PHP程序员。我总是喜欢使用x+=1而不是x=x+1 但我仍然不明白为什么人们说执行x+=1比x=x+1快 (编辑注释:这个问题最初没有指定PHP,因此,关于C++编译器的注释和答案)< P> += 是所谓的。这对开发人员来说是一种方便。这两个语句在逻辑和性能方面应该具有相同的结果。+=就是所谓的。这对开发人员来说是一种方便。这两条语句在逻辑和性能方面应该有相同的结果。体面的编译器会接受这一点 x = x +1 x += 1 x++ 为了保持一致,最终编译相同的代码,因此不会产生任何
x+=1代码>而不是x=x+1代码>
但我仍然不明白为什么人们说执行x+=1代码>比x=x+1快代码>
(编辑注释:这个问题最初没有指定PHP,因此,关于C++编译器的注释和答案)
< P> <代码> += 是所谓的。这对开发人员来说是一种方便。这两个语句在逻辑和性能方面应该具有相同的结果。+=
就是所谓的。这对开发人员来说是一种方便。这两条语句在逻辑和性能方面应该有相同的结果。体面的编译器会接受这一点
x = x +1
x += 1
x++
为了保持一致,最终编译相同的代码,因此不会产生任何差异。体面的编译器会接受这一点
x = x +1
x += 1
x++
为了保持一致,最终编译相同的代码,因此不会提供任何差异。将向您显示答案
$x+=1代码>被解释为分配\添加
$x=$x+1代码>具有单独的添加和分配操作,并使用临时变量
操作码越少,运行速度就越快(在大多数情况下)
请注意,如果启用带有代码优化的opcache,$x=$x+1代码>将优化为使用分配添加。将显示答案
$x+=1代码>被解释为分配\添加
$x=$x+1代码>具有单独的添加和分配操作,并使用临时变量
操作码越少,运行速度就越快(在大多数情况下)
请注意,如果启用带有代码优化的opcache,$x=$x+1代码>将被优化使用BoojyAddio.< /P>谁告诉你有性能上的差别?这取决于CopelILL差异,如果有的话,取决于语言(许多语言把它们当作同义词,但是BOT全部)-并且实现这样的…如果这是C++,那么所有的赌注都被关闭了。你可以让操作符超负荷去做任何你想做的事情,包括控制阅读器。@Amit,在许多与性能和最佳编程实践相关的线程中。谁告诉过你有性能差异?这取决于编译器的差异,如果有的话,取决于语言(许多语言将它们视为同义词,但不是全部)和实现这样的…如果这是C++,那么所有的赌注都被关闭了。你可以重载操作符去做任何你想做的事情,包括拖拽阅读器。@Amit,在许多与性能和编程最佳实践相关的线程中。但是如果x是一个对象呢?如果语言和开发人员没有做任何太可疑的事,x+=y
和x=x+y
应该做同样的事情。我确信有些语言可能违反这一点。但是如果x是一个对象呢?如果语言和开发人员没有做任何太可疑的事情,x+=y
和x=x+y
应该做同样的事情。我确信有些语言可能会违反这一点。但是如果x是一个对象呢?@ikegami如果x是一个对象,无论是谁实现了它,使得x=x+1
在x中的值与x+=1
不同,而两者都是“合法操作”,然后:A。我会觉得这是一个可怕的设计决定。B.这不再是性能问题,因此与问题无关。如果结果相同,而性能不一样,那么我可以放心地说存在实现缺陷。但是如果x是一个对象呢?@ikegami如果x是一个对象,那么无论是谁实现了它,使得x=x+1
在x中的值与x+=1
不同,而两者都是“合法操作”,然后:A。我会觉得这是一个可怕的设计决定。B.这不再是性能问题,因此与问题无关。如果结果相同,而性能不一样,那么我可以放心地说存在实现缺陷。