Flex Array和ArrayCollection的性能相比誰更勝一籌
本文和大家重點討論一下Flex Array和ArrayCollection的性能比較,array方法少,用起來不方便,從開發(fā)方便的角度來看要比ac好,但是效率方面Array優(yōu)于ArrayCollection。
Flex Array和ArrayCollection的性能比較
一直想,寫程序的時候要用Array呢還是ArrayCollection,F(xiàn)lex Array方法少,用起來不方便,從開發(fā)方便的角度來看要比ac好,但是效率方面怎么樣呢?于是做了一個小程序驗證一下。
結論是:Flex Array優(yōu)于ArrayCollection,從測試結果平均看來,AC的效率是隨著object的數(shù)目呈線性下降的,Orz,而Array則是體現(xiàn)了優(yōu)異的效率,在object增加的情況下,基本上沒有太大的變化。所以如果在你需要遍歷所有元素的情況下(比如說物理引擎,3D引擎等),Array是不錯的選擇
ArrayCollection(以下簡稱AC)應該是包裝了Array的Wrapper,支持事件機制,你在對ArrayCollection中的對象進行增加刪除更新操作時ArrayCollection會產(chǎn)生事件,可以通過collectionchange事件監(jiān)聽,所以在圖表開發(fā)中都用ArrayCollection做數(shù)據(jù)源,一旦有更新,就會反映在圖標上
既然如此,那么AC的效率肯定要比原生的Flex Array要差的咯。下面的圖表驗證了這點。
程序會自動往Flex Array和AC里面添加一定數(shù)量的Object{test:"hello"},(從零開始,每次遞增1或者(總數(shù)/10),一直到你的輸入的數(shù)值)。默認是1000個Object。
圖表橫軸是添加的Object的數(shù)量,縱軸Y是時間。
有興趣的話,看看源代碼
【編輯推薦】
- 解析FlexSDK4的十大變化
- Flex必須了解的那些事
- 在Flex中使用樣式的五大方法
- FlexBuilder3.0與Eclipse3.4的完美結合
- Flex ComboBox和Datagrid組件用法指導