Mir ist aufgefallen, dass es beim Inkrementieren eines Zählers wesentlich langsamer ist, wenn der Wert des Zählers eine große Zahl ist. Ich habe es in Chrome, Firefox und IE11 versucht, alle zeigen eine schlechtere Leistung in großen Zahlen.Warum haben inkrementierende Operatoren (++) mit großen Zahlen eine schlechte Leistung?
See jsperf Test here (Code unten):
var count1 = 0;
var count2 = new Date().getTime();
var count3 = 1e5;
var count4 = 1e9;
var count5 = 1e12;
var count6 = 1e15;
function getNum1() {
return ++count1;
}
function getNum2() {
return ++count2;
}
function getNum3() {
return ++count3;
}
function getNum4() {
return ++count4;
}
function getNum5() {
return ++count5;
}
function getNum6() {
return ++count6;
}
Warum geschehen ist das?
Ich kann Ihre Ergebnisse in Firefox 41 nicht reproduzieren. Es behauptet, dass der kleine Datensatz 55% langsamer ist. –
@ k-nut Das ist sehr seltsam, ich habe mit Firefox 41 getestet und sehe, dass der große Datensatz 45% langsamer ist. Konsequent so. – Malki
Kann für Safari und Chrome unabhängig bestätigen, bis zu 2x schneller bei kleinen Zahlen. –