前期在使用FLEX作一個設計器時考慮到了內存和效率問題,因爲前期考慮到用戶交互,仍是使用了Group代替了Sprite做爲設計器中組建的跟節點,但設計的圖紙愈來愈大的時候,內存佔用和效率的問題愈來愈突出,近來,一直想改造一下,因此作了一個實驗,發現使用Spite和Group的區別有這麼的大。markdown
下面是實驗對比結果:(ThinkPad T410i)優化
組件節點根對象 | 節點數量 | 內存佔用(MB) | 建立時間(毫秒) |
---|---|---|---|
Group | 100 | 2.7 | 496 |
10000 | 105 | 61955 | |
Sprite | 100 | 2 | 206 |
10000 | 35 | 10198 |
能夠很容易看出,使用Group的內存佔用快要達到3倍,建立時間有6倍。設計
須要解釋的是一個Sprite組建不能直接添加到Flex的組建中,須要包一個UIComponent,若是使用Sprite時,全部組建均可以添加到一個UIComponent中,而是用Group時,每個組件都須要使用一個UIComponent包起來,才能夠添加。組建的繪製在Sprite上執行。對象
結論:若是須要大量組件的建立,請使用Sprite做爲組件的根節點,並把全部的組建經過一個UIComponent包起來,這樣在內存佔用和建立時間就能夠優化不少,尤爲是組建數量不少時。不過,若是你的組建數目超過1萬個時,須要考慮其餘優化方法,不要試圖所有加載到界面。內存
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。it