Javascript:i++和i += 1之间是否存在性能差异?

3
有很多(几乎相同的)问题在询问i++和++i之间的性能差异,但是i++/++i和i+=1呢?我知道这听起来很愚蠢,但对于搜索引擎或数据管理for循环等需要高速执行的任务,这可能非常有用。如果要处理5000组数据,2毫秒的额外延迟将增加10秒的处理时间。考虑到数百万组以上的数据,这几毫秒的差异就非常大了。
请注意:此问题被设置为Javascript: Forloop Difference between i++ and (i+1)的可能重复项。它不是重复的,因为上述问题是关于如何修复for循环中的问题。而本问题则询问性能差异。

1
https://jsperf.com/for-loop-i-vs-i/3 - CertainPerformance
4
如果您关注的是如此大量的数据,可能不应使用JS来计算结果... - Seth McClaine
@CertainPerformance - 为什么不链接到最新版本?https://jsperf.com/for-loop-i-vs-i/8 - Jaromanda X
你真的关心 var a;var aaa; 之间的性能差异吗? - Munim Munna
1个回答

1
  • i++会先计算i+1的值,然后将其赋给i
  • i += 1i = i+1相同,因此与i++相同。
  • ++i表示增量首先发生,因此没有赋值操作(更快的解决方案)。

@Mulliganaceous 很难说。您可以比较两个 for 循环并对它们进行分析。但是,启用优化后,我不知道 ++i 是否会更快。 - Daniele Cappuccio
1
@Mulliganaceous - 在另一个评论中,你被给了一个 jsperf 的链接 - 差别几乎没有..https://jsperf.com/for-loop-i-vs-i/3。i ++,i + = 1 每秒12.39个操作,++ i每秒12.28个操作 - 在所有结果上+/- 8%的变化下,这三种方法之间没有明显的区别(尽管,似乎预增量,与流行观点相反)实际上在火狐和谷歌浏览器中稍微一些) - Jaromanda X

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接