`
txf2004
  • 浏览: 7081345 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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的优势是界面的数据绑定以及支持数据排序等高级方法。

分享到:
评论

相关推荐

    Flex的Array和ArrayCollection

    Flex的Array和ArrayCollection

    FLEX ——完美的 TREE

    这个标题“FLEX ——完美的 TREE”提到了FLEX在实现一个特定功能——TREE组件方面的卓越表现。TREE组件是FLEX中用于展示层次结构数据的关键元素,它允许用户以树形结构查看和操作数据,这在许多场景下都非常有用,...

    Flex Tree 通过Arraycollection转化为XML数据源,新增、删除、修改功能的整合

    本篇文章将聚焦于如何将ArrayCollection转换为XML数据源,并实现Flex Tree组件的新增、删除和修改功能。以下是详细的解释和步骤。 首先,ArrayCollection是Flex中常用的数据结构,它是一个动态数组,支持数据绑定和...

    Flex:ArrayCollection转xml形式的实例

    ArrayCollection是基于Array的,但提供了对数据的更高级别的访问,如排序和过滤功能。在某些情况下,我们需要将ArrayCollection转换为XML格式,以便于数据交换或存储。本实例将详细介绍如何实现这一转换。 首先,...

    Flex实践——Datagrid的打印预览与打印

    这个主题聚焦于Flex中的一个关键组件——Datagrid,以及如何实现它的打印预览和打印功能。Datagrid是Flex中用于展示数据集的常用控件,常用于表格形式的数据展示和操作。 首先,我们要理解Flex Datagrid的基础知识...

    ArrayCollection求最大值,最小值,排序

    在IT行业中,ArrayCollection是ActionScript 3.0和Flex框架中的一个重要数据结构,它扩展了Array类,提供了对数据的双向绑定和事件通知功能。ArrayCollection不仅支持数组的操作,还具备列表的数据管理特性,因此在...

    Flex中Tree组件的数据源举例(xml,array,object)

    本篇将详细介绍如何为Flex中的Tree组件设置不同的数据源,包括XML、Array和Object。 首先,让我们从XML数据源开始。XML因其结构化的特性,非常适合用来表示层次数据。在Flex中,我们可以使用mx.collections....

    用ArrayCollection当做flex中Tree控件的DataProvider

    本文将详细探讨如何使用`ArrayCollection`作为Flex中的`Tree`控件的数据提供者,以替代通常使用的XML数据源。 首先,让我们理解`ArrayCollection`的概念。`ArrayCollection`是Flex中的一个类,它继承自`...

    ArrayCollection不完全绑定

    在Flex编程中,ArrayCollection是一种常用的集合类,它继承自Array类并添加了对数据绑定的支持。然而,尽管ArrayCollection通常被用作数据绑定的主要工具,但在特定情况下,可能会遇到“ArrayCollection不完全绑定”...

    Flex从入门到实践——源代码(12,13,14章)

    你可能会学习到如何使用 Cairngorm、PureMVC 或 Swiz 等设计模式来组织大型项目,以及如何优化Flex应用的性能。此外,可能还会讨论到错误处理、模块化开发和调试技巧。 每个章节的源代码提供了实际操作的机会,让你...

    FLEX ArrayCollection删除过滤的数据问题解决

    在Flex开发中,ArrayCollection是一种常用的集合类,它继承自Array并添加了对数据绑定和事件处理的支持。然而,当ArrayCollection应用了过滤器后,直接使用`removeItemAt()`方法尝试删除过滤后的数据可能会遇到问题...

    flex带comobox的tree

    flex自定义用ArrayCollection做数据源的带checkbox的tree(功能强大的完美版^_^) .

    Flex第一步

    - **数据模型**:Flex支持多种数据模型,如ArrayCollection、Object等,方便进行数据管理和操作。 - **事件处理**:Flex提供了丰富的事件系统,支持各种用户交互行为的处理。 #### 四、Flex高级特性详解 Flex还...

    flex datagrid 前台 分页

    1. **数据管理**:你需要有效地管理从服务器获取的大量数据,例如使用ArrayCollection或Vector存储数据,这些数据结构支持数据绑定并提供了数据操作的方法。 2. **性能优化**:由于所有数据都在客户端,需要注意内存...

    flex和java整合常见问题分析

    - 使用Flex的` ArrayCollection`或`Object[]`等类型来封装数据,确保两端的数据格式一致。 - 调整BlazeDS中的配置,确保数据能够正确地被序列化和反序列化。 4. **问题四:性能瓶颈** - **原因**:Flex与Java...

    Flex性能,内存管理和对象缓存

    ### Flex性能、内存管理和对象缓存 #### 一、引言 在开发基于Flex的应用程序时,提升性能、有效管理内存以及合理利用对象缓存是非常重要的。这些技术可以帮助开发者构建出响应迅速、资源消耗低且具有良好用户体验的...

    flex实现数据表格。

    1. **数据绑定**:Datagrid可以直接与数据提供者进行绑定,数据提供者可以是Array、ArrayCollection或其他支持ICollectionView接口的数据源。这意味着你可以动态地更新数据源,Datagrid会自动反映这些更改。 2. **...

    flex与数据库交互

    同时,Flex提供了ArrayCollection类,可以方便地管理和操作数据集,如排序、过滤和分页。 ```actionscript ``` 这里,`lastResult`属性包含了HTTPService的响应数据,`data`是返回数据中的具体属性,`...

    flex操作数据库, flex操作本地sql数据库

    var employees:ArrayCollection = event.result as ArrayCollection; // 处理查询结果 } function onQueryError(event:FaultEvent):void { trace("查询出错:" + event.fault.message); } ``` 六、优化与安全 ...

Global site tag (gtag.js) - Google Analytics