0

我正在编写的 javascript 小部件中有一个相当大的数组,我想知道在浏览器资源方面将其保留为一个数组或将其分解为几个较小的数组是否更有效?谁能推荐一种测试差异的方法?

4

3 回答 3

1

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

于 2013-11-12T18:30:14.247 回答
1

您始终可以使用console.time('timerName')andconsole.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
于 2013-11-12T18:46:11.320 回答
0

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

我建议使用网络工作者。他们会将任务卸载到单独的线程,如果您将任务分成块,这可以加快速度。不过,这完全取决于有多少内核可用。

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

我以前用过 Paralell.js,我喜欢它。它为不支持 Web Workers 的浏览器提供了一个备用方案。

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

于 2013-11-12T18:37:39.680 回答