Оптимизация работы c массивами в JavaScript

На днях пришлось оптимизировать большой кусок JavaScript кода со множеством массивов и строк. Решил выложить свои наблюдения по скорости работы.
javascript оптимизация массивов

Задача: нам нужно перебрать массив из N элементов (для наглядности нагрузки из 500000), для его создания использовал код:

var arr = Array.apply(null, Array(500000)).map(function (_, i) {return i;});

Пример 1: скорости работы, самый неоптимизированый.

var newArr = [];
for (var i=0; i<arr.length; i++) {
  newArr[newArr.length] = arr[i];
}

Консоль выдала скорость обработки: time1: 411.17ms

Пример 2: оптимизировано добавление элемента в массив назначения

var newArr = [];
for (var i=0; i<arr.length; i++) {
  newArr.push(arr[i]);
}

Консоль выдала скорость обработки: time2: 376.61ms

Пример 3: оптимизированый способ, оптимизируем сам цыкл

var newArr = [],
    arrLength = arr.length;
for (var i=0; i<arrLength; i++) {
  newArr.push(arr[i]);
}

Консоль выдала скорость обработки: time3: 352.75ms

Такими нехитрыми манипуляциями можно ускорить код ~ на 15%.

Если вы знаете еще более отпимальный вариант – предлагайте в комментариях! Буду очень благодарен!

Написать ответ

 Имя

 Mail

 Сайт

[Имя и Mail обязательны для заполнения. Mail не будет опубликован.]


 9fce13c8-2714-4603-b8e7-33be6c785d58