Показать сообщение отдельно
  #21 (permalink)  
Старый 14.08.2014, 14:07
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

Сообщение от kobezzza
никогда не делай бенчмарки через консоль отладчика, т.к. он отключает использование JIT компилятора и результат замеров может значительно отличаться
сделал без консоли

результат почти тот же в Хроме, FF

var timeStart,
	i,
	maxItems = 1e6,
	arr = [],
	needKey = 500137, // где-то в середине
	myArr;

// генерим массив
for (i = 0; i < maxItems; i += 1) {
  arr.push({key: i, label: i + ''});
}

// test filter
timeStart = +(new Date());
myArr = arr.filter(function (item) {
  return (item.key === needKey);
});

alert('filter ms: ' + (new Date() - timeStart));

// test цикл
myArr = [];
timeStart = +(new Date());

for (i = 0; i < arr.length; i += 1) {
   if (arr[i].key === needKey) {
	  myArr.push(arr[i]);
	  break;
   }
}

alert('for ms: ' + (new Date() - timeStart));
Ответить с цитированием