2013-11-12 2 views
0

У меня есть один довольно большой массив в виджете javascript, который я пишу, и я хочу узнать, будет ли более эффективным с точки зрения ресурсов браузера оставить его как один массив или разбить его на несколько меньших массивов? Может ли кто-нибудь рекомендовать метод тестирования различий?Как измерить время загрузки большого массива?

+0

Играйте с http://jsperf.com/ Один большой массив против множества небольших массивов по-прежнему равен одинаковому количеству загружаемые данные. :) – epascarello

+1

вы можете регистрировать временную метку до и после загрузки массива и видеть разницу – Shadow

ответ

1

вы всегда можете использовать console.time('timerName') и console.timeEnd('timerName') установить таймер и выяснить время, прошедшее между двумя точками вашего яваскрипта кода, а затем сравнить результаты:

console.time('BigArray'); 
var arr1 = []; 
for(var i=0; i<200000; i++){ 
    arr1.push('test'); 
} 
console.timeEnd('BigArray'); 


console.time('SeveralArrays'); 
for(var i=0; i<200000; i++){ 
    var arr2 = ['test']; 
} 
console.timeEnd('SeveralArrays'); 

выход будет что-то например:

BigArray: 123ms 
SeveralArrays: 456ms 
1

Может использовать firefox или chrome для создания console.log (new Date.toString()) до и после различных методов, которые вы пытаетесь сравнить. Я не думаю, что разбить рутину сократит время.

0

Простое разделение массивов не улучшит скорость обработки.

Я предлагаю использовать веб-работников. Они разгружают задачу в отдельный поток, который может ускорить работу, если вы разделите задачу на куски. Тем не менее, это зависит от того, сколько ядер доступно.

Это также предотвратит зависание пользовательского интерфейса, если вы обрабатываете действительно огромные наборы данных. Очень полезно с точки зрения UX.

Я использовал Paralell.js раньше, и мне это нравится. Он обеспечивает резерв для браузеров, которые не поддерживают веб-работников.

http://adambom.github.io/parallel.js/

Смежные вопросы