Тема: DOM vs. innerHTML
Показать сообщение отдельно
  #13 (permalink)  
Старый 13.02.2014, 10:44
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от 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 выдает результат схожий с твоим, странно как-то.
Ответить с цитированием