Сравнение производительности между 4 методами, которые могут добавлять элементы в массив:
Добавить с помощью индексера
Кода -копия выглядит следующим образом:
console.time ("index");
var a = [];
for (var i = 0, l = times; i <l; i ++) {
a [i] = i;
}
console.timeend ("index");
Используйте метод push
Кода -копия выглядит следующим образом:
Console.Time («push»);
var a = [];
for (var i = 0, l = times; i <l; i ++) {
A.Push (I);
}
console.timeend («push»);
Используйте метод concat
Кода -копия выглядит следующим образом:
Console.Time ("CONCAT");
var a = [];
for (var i = 0, l = times; i <l; i ++) {
A.concat (i);
}
console.timeend ("concat");
Используйте метод CONCAT, параметры являются массивом
Кода -копия выглядит следующим образом:
Console.Time ("Concat с массивом");
var a = [];
for (var i = 0, l = times; i <l; i ++) {
A.concat ([i]);
}
console.timeend ("concat с массивом");
Установите время до 100 миллионов раз:
Кода -копия выглядит следующим образом:
Индекс: 0,310 мс
толчок: 1,476 мс
Concat: 8,911 мс
Concat с массивом: 2,261 мс
Установите время до 100 000 (100 000) раз:
Кода -копия выглядит следующим образом:
Индекс: 1,967 мс
толчок: 11,980 мс
Concat: 70,410 мс
Concat с массивом: 28,292 мс
Установите время до 1000000 (миллион) раз:
Кода -копия выглядит следующим образом:
Индекс: 138,559 мс
толчок: 93,074 мс
Concat: 608,768 мс
Concat с массивом: 243,371 мс
Установите время до 100 000 (10 миллионов) раз:
Кода -копия выглядит следующим образом:
Индекс: 1473,733 мс
Толк: 611.636ms
Concat: 6058,528 мс
Concat с массивом: 2431.689ms
Суммировать
Этот вывод полезен только с браузером Chrome
Эффективность выполнения метода CONCAT является самой медленной
По сравнению с передачей аргумента двух методов CONCAT, когда принятые параметры являются массивами, эффективность выполнения выше, чем у принятых параметров в качестве не прилеганий.
В большинстве случаев эффективность выполнения индексера выше, чем в методе Push.
Когда число выполнений увеличивается, эффективность выполнения индексатора начинает быть хуже, чем у метода push
Сравнение браузера
Благодаря пользователям сети за то, что мне не хватает опыта, поэтому вот горизонтальные сравнения между браузерами
Во -первых, используйте метод concat. В IE и Firefox параметры представляют собой массивы, а эффективность выполнения медленнее, чем другие параметры, не являются аразовыми, но разница не большая.
Тогда уверен, что методы индекса и толчка быстрее, чем Concat. Использование метода индекса в IE всегда быстрее, чем push. Толчок немного лучше в Firefox, но разница не большая
По сравнению с эффективностью выполнения индекса и методов толчка между тремя браузерами эффективность выполнения Firefox намного выше, чем у IE и Chrome. За миллион раз это в основном в 10 раз быстрее. Я самый медленный по сравнению с двумя другими.
Ниже приведены результаты миллионов:
Кода -копия выглядит следующим образом:
// Firefox
Индекс: начался таймер
Индекс: 229,79 мс
push: таймер начался
толчок: 205,12 мс
CONCAT: Таймер начался
Concat: 2136,99 мс
Соглашается с массивом: начался таймер
Concat с массивом: 2365,18 мс
`` `
Кода -копия выглядит следующим образом:
// т.е.
Индекс: 2 533,744 миллисекунд
Толчок: 3865,979 миллисекунд
Concat: 4 303,139 миллисекунд
Concat с массивом: 4 792,208 миллисекунд
Эта статья просто для того, чтобы исследовать производительность JS. Это углубит понимание ваших друзей JavaScript через сравнение. Надеюсь, вам это понравится.