gpt4 book ai didi

javascript - 为什么+=(加法赋值,加上等于)在 Node 中这么慢?

转载 作者:数据小太阳 更新时间:2023-10-29 04:45:16 28 4
gpt4 key购买 nike

<分区>

在某些版本的node中,a += b明显比a = a + b慢,但在浏览器和更高版本中类似。是什么导致它们运行如此不同?

  • node v6.10.0 (V8 5.1.281.93),慢 75%,或者反向快 4 倍
  • node v8.0.0 (V8 5.8.283.41),慢 86%,或者反向快 7 倍
  • node v8.2.1 (V8 5.8.283.41),慢 86%,或者反向快 7 倍
  • node v8.3.0 (V8 6.0.286.52),类似
  • node v8.7.0 (v8 6.1.534.42),类似
  • node v8.9.2 (V8 6.1.534.48),类似
  • chrome 62.0.3202.94 (V8 6.1.534.42),类似
  • safari 11.0.1,类似

编辑:发现与node的v8引擎从5升级到6有关。

片段:

const iter = 10 * 1000 * 1000

function one() {
let i = 0
let sum = 0
while (i < iter) {
sum += i
i++
}
}

function two() {
let i = 0
let sum = 0
while (i < iter) {
sum = sum + i
i++
}
}

let time
const tries = 10

time = Date.now()
for (let i = 0; i < tries; i++) {
one()
}
console.log('one: ' + String(Date.now() - time))

time = Date.now()
for (let i = 0; i < tries; i++) {
two()
}
console.log('two: ' + String(Date.now() - time))

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com