如何测量大型阵列的加载时间?

时间:2013-11-12 18:24:00

标签: javascript arrays performance browser

我正在写一个javascript小部件中有一个相当大的数组,我想知道它是否在浏览器资源方面更有效率,只将它作为一个数组或将其分解为几个较小的数组?任何人都可以推荐一种测试差异的方法吗?

3 个答案:

答案 0 :(得分:1)

可以使用firefox或chrome在您尝试比较的不同方法之前和之后执行console.log(new Date.toString())。我不认为打破常规会减少时间。

答案 1 :(得分:1)

您可以随时使用console.time('timerName')console.timeEnd('timerName')来设置计时器,找出javascript代码两点之间的经过时间,然后比较结果:

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

答案 2 :(得分:0)

分割数组不会提高处理速度。

我建议使用Web Workers。他们会将任务卸载到一个单独的线程,如果将任务拆分成块,可以加快速度。但这完全取决于可用的核心数量。

如果您正在处理非常庞大的数据集,它还会阻止UI挂起。从用户体验的角度来看非常有用。

之前我使用过Paralell.js,我喜欢它。它为不支持Web Workers的浏览器提供了后备。

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