node.js 数组性能比较

当数组元素的个数为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倍以上,但这几乎在所有的互联网应用里面都不会成为

瓶颈,可以放心使用了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值