【问题标题】:How to improve Flex performance for invisible views如何提高不可见视图的 Flex 性能
【发布时间】:2012-03-19 15:56:10
【问题描述】:

我们有一个中等大小的 Flex 3.6 应用程序,其中包含大约 20 个不同的页面视图(通过单个惰性 ViewStack 管理),每个页面视图都有多个组件。大多数使用自定义渲染器。

所有模型数据在启动时加载,模型实例的更改通过绑定和/或集合更改事件进行通信。

一旦用户至少查看了每个页面一次,所有页面视图都会被实例化并愉快地收听更新事件。

这实际上意味着每次模型实例更改时,所有感兴趣的视图都会收到该事件并计算派生数据或触发项目渲染器。

我已在概念验证应用程序中测试并确认了此行为。即使将列表设置为不可见,它仍会侦听集合更改事件并使任何受影响的渲染器无效。

你会怎么做?

【问题讨论】:

  • 据我所知,Flex 3.6 不存在,那么它是 3.5 还是 4.6?
  • 有很多关于 flex 移动开发优化的资源,但我在这里看到/想到的主要事情是你应该使用 ViewNavigator 而不是 ViewStack opensource.adobe.com/wiki/display/flexsdk/…
  • @RIAstar Flex 3.6 SDK 确实存在...我的一个项目是用它编译的!
  • @JonathanRowny 啊,可爱的 Adob​​e 透明度:Flex SDK download page 上找不到该版本,而 Flex 3.5.0.12683 被提及为最新的里程碑版本。 (您的 3.6 下载链接位于 ColdFusion 下:现在一切都说得通了……)
  • @RIAstar 是的,它曾经在那个页面上,不知道为什么现在没有。它在 Flex SDK 下载站点上,这里只是处于一种废弃状态:opensource.adobe.com/wiki/display/flexsdk/Download+Flex+3

标签: performance apache-flex


【解决方案1】:

不推荐为您的视图使用单例,因为它将所有内容都保存在内存中,这可能非常庞大。您应该在使用后适当地销毁所有视图。您应该对系统上的整体内存管理更加警惕。此外,您应该“停用”系统中当前未使用的部分。

我建议您从视图中删除当前不需要的任何内容,除非适合为某些用途“预加载”它们。您还应该查看分析器(如果有的话)以查看使用最多内存的内容并尝试修复使用过多内存的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-27
    • 1970-01-01
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多