Flex中添加大量組件時內存佔用問題

前期在使用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

相關文章
相關標籤/搜索