【发布时间】:2011-09-24 11:31:54
【问题描述】:
我读到许多开发人员使用 x += 1 代替 x++ 以清楚起见。我知道 x++ 对新开发人员来说可能是模棱两可的,而 x += 1 总是更清楚,但是两者之间的效率有什么区别吗?
使用 for 循环的示例:
for(x = 0; x < 1000; x += 1) 与 for(x = 0; x < 1000; x++)
我知道这通常没什么大不了的,但如果我反复调用执行这种循环的函数,从长远来看可能会累加。
另一个例子:
while(x < 1000) {
someArray[x];
x += 1;
}
对
while(x < 1000) {
someArray[x++];
}
可以将 x++ 替换为 x += 1 而不会造成任何性能损失吗?我特别担心第二个示例,因为我使用的是两行而不是一行。
如何增加数组中的项目?在大循环中完成时,someArray[i]++ 会比 someArray[i] += 1 更快吗?
【问题讨论】:
-
您可以通过运行基准测试来发现这一点! 根据您使用的任何语言,编译器很可能会为两个语句生成相同的代码。 过早的优化是万恶之源。
-
为了后代,我更喜欢
x++到x += 1 -
我相信你后面的例子有两个不同的陈述。在第一个中,您访问数组 someArray 的索引 x,然后将 x 增加 1。在第二个中,您访问数组 someArray 的索引 x+1。
-
@YGomez:不,
x++先返回x,然后再增加。 -
是的,但我必须测试每种语言。我想知道是否有一些我可以遵循的经验法则。如果
x += 1更清楚,为什么人们使用x++和++x?
标签: arrays optimization increment