Array的push与unshift方法性能分析
来源:互联网 发布:jsaas 源码 编辑:程序博客网 时间:2024/05/29 18:38
Array的push与unshift方法都能给当前数组添加元素,不同的是,push是在末尾添加,而unshift则是在开头添加。从原理就可以知道,unshift的效率是较低的。原因是,它每添加一个元素,都要把现有元素往下移一个位置。但到底效率差异有多大呢?下面来测试一下。
测试环境的主要硬件:CPU T7100(1.8G);内存4G DDR2 667;硬盘5400转。主要软件:操作系统为Windows 7;浏览器为Firefox 3.6.9。测试代码:
var arr = [ ], s = +new Date;
// push性能测试
for (var i = 0; i < 50000; i++) {
arr.push(i);
}
console.log(+new Date - s);
s = +new Date;
arr = [ ];
// unshift性能测试
for (var i = 0; i < 50000; i++) {
arr.unshift(i);
}
console.log(+new Date - s);
这段代码分别执行了50000次push和unshift操作,运行一次以后,得出结果:
12
1152
可见,unshift比push要慢差不多100倍!因此,平时还是要慎用unshift,特别是对大数组。那如果一定要达到unshift的效果,有没有其他方法呢?答案是肯定的。
Array有一个叫做reverse的方法,能够把一个数组反转。先把要放进数组的元素用push添加,再执行一次reverse,就达到了unshift的效果。比如:
for (var i = 0; i < 50000; i++) {
arr.push(i);
}
arr.reverse();
reverse的性能又如何呢,下面再来测试:
var arr = [ ], s = +new Date;
for (var i = 0; i < 50000; i++) {
arr.push(i);
}
arr.reverse();
console.log(+new Date - s);
结果是:
12
可见,reverse性能极高,没有明显的性能消耗。
- Array的push与unshift方法性能分析
- Array的push与unshift方法性能比较分析
- js队列方法push()、shift()与pop()、unshift()的理解
- javascript数组(array)的常用方法(shift/unshift/pop/push/concat/splice/reverse/sort/slice/join)
- js中数组方法push()、shift()与pop()、unshift()的区别
- 关于push与unshift的区别与比较
- array push pop shift unshift +javascript
- javascript array push pop shift unshift
- 数组的各种方法范例pop,push,unshift,splice,shift
- Js数组的方法pop,push,unshift,splice,shift
- Js数组的操作push,pop,shift,unshift等方法
- Javascript的shift()和push(),unshift()和pop()方法简介
- splice与slice、push\pop、unshift、concat的
- concat join reverse slice sort push unshift pop splice Array对象常用方法
- js中 push pop shift unshift方法
- array.push()方法的用法
- JS的unshift方法
- 数组的操作push,pop,shift,unshift
- [EGORefreshTableHeaderView]手动启动下拉更新的方法
- 温故而知新-归并排序(JAVA)
- .net服务器上,一个虚拟目录放多个网站的方法
- 屏幕亮度自动调节的实现
- IEEE 754 浮点数的表示精度探讨
- Array的push与unshift方法性能分析
- 一个很好用的在Office开发中图像转化成stdole模式的类
- Flex开发常遇问题
- 管理oracle clusterware (Voting Disk)
- Eclipse SWT
- Android中的控件
- c++primer 2/22---变量
- Linux中的platform
- 开始android游戏开发