Сообщение от danik.js
|
хз как ты тестишь
|
просто запускаю в консоли:
var i = 500000, arr = []; while (i--) { arr.push(i); }
var sum = 0, st = Date.now();
arr.forEach(function(num) { sum += num; });
console.log(Date.now() - st);
sum = 0; st = Date.now();
function add(num) { sum += num; }
arr.forEach(add);
console.log(Date.now() - st);
sum = 0; st = Date.now();
for (var j = 0, l = arr.length; j < l; j++) { sum += arr[j]; }
console.log(Date.now() - st);
sum = 0; st = Date.now();
for (var j = 0; j < arr.length; j++) { sum += arr[j]; }
console.log(Date.now() - st);
результат в хроме:
736
85
2496
2608
в ff:
657
590
871
913
пробовал переставлять тесты местами, пробовал отдельно генерить массив и далее отдельно запускать каждый тест. Проверь, мож я где затупил жестко. jsperf выдает результат схожий с твоим, странно как-то.