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的优势是界面的数据绑定以及支持数据排序等高级方法。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |