node.js 数组性能比较

时间:2022-10-27 20:50:34

当数组元素的个数为100000时,删除前10000个元素,

shift性能较高:

shitf用时0ms,而delete用了403ms;


当数组元素的个数为1000000时,删除前10000个元素,

delete性能较高:

shitf用了98105ms,deletef用时4396ms


delete删除相同数目的元素,所用时间居然跟数组长度成正比!


还是pop比较好,由于不需要移动元素,上面两种情况下用时

分别是0ms和1ms。

var a = [];


for(var i = 0; i<10000000;++i){

a[i] = i;

}
console.log(a.length);
var start = Date.now();

for(var j = 0; j<10000000; ++j){
a[j] = j+ 1;

}

var end = Date.now();

console.log(end -start);




for(var k = 0; k<10000000; k = k+ 5){
delete a[k];

}
var start = Date.now();


for(var h = 0; h<10000000; ++h){
if(a[h] !== undefined){
a[h] = h + 1;
}
}

var end = Date.now();
console.log(end -start)
输出为:

10000000
21
171

可见遍历稀疏数组所用时间是普通数组的8倍以上,但这几乎在所有的互联网应用里面都不会成为

瓶颈,可以放心使用了。