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

相关文章
相关标签/搜索