测试方法
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的优势是界面的数据绑定以及支持数据排序等高级方法。
分享到:
相关推荐
Flex的Array和ArrayCollection
NULL 博文链接:https://tangdonglai.iteye.com/blog/1478277
NULL 博文链接:https://xaajie.iteye.com/blog/379054
Flex的ArrayCollection在某些情况无法绑定解决方法
tree多数情况下操作xml比较方便,而本人却对xml有些排斥,说得更确切些,对xml用的不是那么得心应手,所以选择了ArrayCollection
ArrayCollection求最大值,最小值,排序。供大家共同学习一下。
flex自定义用ArrayCollection做数据源的带checkbox的tree(功能强大的完美版^_^) .
//fr.data为flex加载excel的byte数组 var sheet:Array = excel.getSheetArray();//得到表格数据,为Array格式 var datasource:ArrayCollection = new ArrayCollection(sheet); //可转换为ArrayCollection,用于表格...
ArrayCollection添加过滤器后,调用removeItemAt()是无法删除的,下面有个不错的解决方法,大家可以参考下
1. Java通过第三方控件POI操作Excel,读取的数据存储在...2. 通过Blazeds将ArrayList发送到Flex中的ArrayCollection中。(Blazeds构建过程不在本篇讨论范围,见flex4+blazeds+java通信(视频)) 3. 绑定到DataGrid。
//fr.data为flex加载excel的byte数组 var sheet:Array = excel.getSheetArray();//得到表格数据,为Array格式 var datasource:ArrayCollection = new ArrayCollection(sheet); //可转换为ArrayCollection,用于...
如果你建立的项目不是flex项目,而需要使用ArrayCollection等,请把这个mx包引入解决问题
Flex 编程小技巧 1. 复制内容到剪贴板 1. System.setClipboard(strContent); 2. 复制一个 ArrayCollection 1. //dummy solution( well, it works ) 2. var bar:ArrayCollection = new ArrayCollection(); 3. for ...
java-flex-mysql,实现增删改查,用户富客户端Flex,后台java封装list形式,Flex前台ArrayCollection来接受!
首先环境:Myeclipse+Flex4.5+FusionCharts 至于FusionCharts的相关文件稍后我将放在附件中。 1.新建flex工程: 2.对工程进行相应配置 3.继续配置: 4.找到fusioncharts文件中FusionChartsFlex\...
flex外部读取xml
flex通过httpService读取xml数据到datagird中,通过读取远程URL的XML数据(这里保存到本地),保存到ArrayCollection中,然后在将ArrayCollection绑定到datagird上 环境:flex3.0 可直接运行
因为new ArrayCollection 需要 array对象,event.result是空间返回对象(JAVA方法返回值)所以类型不同无法使用new 构造ArrayCollection ,可是恶心的FLEX偏偏支持javalist=ArrayCollection
Design 视图:按钮,图片 Source 视图 MXML/ActionScript 3.0 动态效果:移动,旋转,放大,淡入...表格DataGrid, dataProvider,集合对象Array,ArrayCollection Http请求 HttpService, 报表:饼图,折线图,柱状图
其中包含一个三种状态的checkbox,DataGrid代码中引用了 带多选框的DataGrid(AdvancedDataGrid) 表头有全选CheckBox,三种状态:全选、部分选择、无选择 如果改变目录结构,需要在...目前数据源只能用ArrayCollection