Flex——Array,ArrayCollection,Vector性能比较(转)
测试方法 private function Test():void { for(var j:int=0;j<5;j++) { trace("插入10000项============"); var t1:int, t2:int; var i:int = 0; var a:Array = new Array(); var al:ArrayCollection = new ArrayCollection(); var item:String; var v:Vector.<String> = new Vector.<String>(); t1 = getTimer(); for(i=0;i<10000;i++) a.push(StringUtil.NewGuid()); t2 = getTimer(); trace("Array耗时:/t/t",t2-t1); t1 = getTimer(); for(i=0;i<10000;i++) al.addItem(StringUtil.NewGuid()); t2 = getTimer(); trace("ArrayCollection耗时:/t",t2-t1); t1 = getTimer(); for(i=0;i<10000;i++) v.push(StringUtil.NewGuid()); t2 = getTimer(); trace("Vector耗时:/t/t",t2-t1); trace(""); trace("遍历10000项=========="); t1 = getTimer(); for(i=0;i<10000;i++) item = a[0]; t2 = getTimer(); trace("Array耗时:/t/t",t2-t1); t1 = getTimer(); for(i=0;i<10000;i++) item = al[0]; t2 = getTimer(); trace("ArrayCollection耗时:/t",t2-t1); t1 = getTimer(); for(i=0;i<10000;i++) item = v[0]; t2 = getTimer(); trace("Vector耗时:/t/t",t2-t1); trace(""); } } 测试输出 插入10000项============ Array耗时: 465 ArrayCollection耗时: 788 Vector耗时: 444 遍历10000项========== Array耗时: 2 ArrayCollection耗时: 98 Vector耗时: 2 插入10000项============ Array耗时: 433 ArrayCollection耗时: 791 Vector耗时: 430 遍历10000项========== Array耗时: 2 ArrayCollection耗时: 97 Vector耗时: 2 插入10000项============ Array耗时: 427 ArrayCollection耗时: 805 Vector耗时: 415 遍历10000项========== Array耗时: 1 ArrayCollection耗时: 97 Vector耗时: 1 插入10000项============ Array耗时: 422 ArrayCollection耗时: 824 Vector耗时: 401 遍历10000项========== Array耗时: 2 ArrayCollection耗时: 97 Vector耗时: 2 插入10000项============ Array耗时: 467 ArrayCollection耗时: 772 Vector耗时: 438 遍历10000项========== Array耗时: 2 ArrayCollection耗时: 98 Vector耗时: 2 结论 Array与Vector性能接近,插入时Vector略快,遍历相近,Vector的优点是强类型,缺点是要Flash Player 10,所以作数据存储运算等建议使用Array。 ArrayCollection性能最差,插入时约比Array慢了一倍,遍历慢了几十倍,ArrayCollection的优势是界面的数据绑定以及支持数据排序等高级方法。