Düğümün belirli sürümlerinde, a += b
, a = a + b
'dan önemli ölçüde daha yavaştır, ancak tarayıcıda ve sonraki sürümlerde benzerdir. Onları çok farklı bir şekilde çalıştırmasına neden olan nedir?Düğümde neden + = (ek atama, artı eşittir) bu kadar yavaş?
node v6.10.0 (V8 5.1.281.93)
,% 75 daha düşük, ya danode v8.0.0 (V8 5.8.283.41)
hızlı% 86 daha yavaş 4x veya ters 7x daha hızlınode v8.2.1 (V8 5.8.283.41)
,% 86 daha düşük olduğu, veya ters, tersnode v8.3.0 (V8 6.0.286.52)
7x hızlıdır ,node v8.9.2 (V8 6.1.534.48)
benzer,
node v8.7.0 (v8 6.1.534.42)
benzer benzer
chrome 62.0.3202.94 (V8 6.1.534.42)
, benzersafari 11.0.1
, benzer
Düzenleme:
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))
"İki" ve "bir" testlerinin sırasını değiştirmeyi denediniz mi? _Homemade_ testleri her zaman güvenilir değildir. –
Bu ne değişti? @ibrahimmahrir – Luca
Siparişi değiştirmeyi denedim, "sadece çünkü", ama aynı sonucu aldım – Billiam