zoukankan      html  css  js  c++  java
  • Flex中添加大量组件时内存占用问题

    前期在使用FLEX做一个设计器时考虑到了内存和效率问题,由于前期考虑到用户交互,还是使用了Group代替了Sprite作为设计器中组建的跟节点,但设计的图纸越来越大的时候,内存占用和效率的问题越来越突出,近来,一直想改造一下,所以做了一个实验,发现使用Spite和Group的区别有这么的大。

    下面是实验对比结果:(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万个时,需要考虑其他优化方法,不要试图全部加载到界面。

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    BZOJ3575 [Hnoi2014]道路堵塞
    BZOJ4456/UOJ184 [Zjoi2016]旅行者
    BZOJ4455/UOJ185 [Zjoi2016]小星星
    BZOJ1036 [ZJOI2008]树的统计Count
    BZOJ2594 [Wc2006]水管局长数据加强版
    BZOJ3669/UOJ3 魔法森林(LCT)
    BZOJ1012:[JSOI2008]最大数
    洛谷【P1175】表达式的转换
    HDU4699:Editor
    BZOJ3039:玉蟾宫
  • 原文地址:https://www.cnblogs.com/yin138/p/4902246.html
Copyright © 2011-2022 走看看