Sencha Touch 2内存管理选项

aft*_*ers 11 sencha-touch sencha-touch-2

我正在研究如何在Sencha Touch 2中节省内存.我看到了两个选项,我将在下面介绍.

我想得到两个选项之间内存消耗差异的建议,并知道我是否遗漏了任何东西.

节省内存的选项

  1. 删除并销毁

    从容器中移除未使用的组件,并将它们摧毁.当他们再次需要时,重新创建它们.

    优势:

    容器引用的'autoCreate'选项和容器配置的'autoDestroy'选项可以极大地帮助这种方法.

    缺点:

    要在销毁之前重新创建视图,您需要确保要重新创建的每个重要信息(例如列表中的滚动位置,地图中的地图中心)在其他地方保持状态.

  2. 去掉

    从容器中移除未使用的组件而不破坏它们.当它们再次需要时,将它们重新连接到容器上.

    好处

    1. 无需将GUI相关信息保存在某个州.
    2. 即使没有出现在DOM中,组件也可以更新.

    缺点

    1. 组件从DOM中清除,但Sencha对象仍保留在内存中
    2. 你需要在某处保留独立组件,并确保在创建新组件之前检查并附加现有组件

aft*_*ers 2

我还在 Sencha 论坛上发布了此内容:http://www.sencha.com/forum/showthread.php ?200314-Memory-Management-Options

我得到了以下相当笼统的答案:

如果删除该组件但不销毁它,则可以最小化 DOM 大小,但当然该组件仍然保留在设备内存中。这样做的好处是,由于 DOM 大小减小了,因此您可以获得更好的性能,并且 DOM 大小将比内存中的某些组件产生更大的影响。