【发布时间】:2012-02-26 17:44:45
【问题描述】:
过去两年我一直在使用 flex 开发一些桌面应用程序。到目前为止,我从未遇到任何与性能相关的问题,但今天我们完成了一个 iPad 移动应用程序,我面临一个挑战,该应用程序在 iPad 上速度非常慢。
http://i.stack.imgur.com/qkbWn.png
慢,意味着当我按下菜单中的按钮来更改拆分视图时,我必须等待 5 秒。然后滚动真的很慢两个,不到 1 fps,我的 TextInput 开始出错(文本不再在他的框中)。
我开始阅读大量关于移动平台优化的博客文章和演示文稿,然后我重写了一些我使用的组件。例如,我删除了 SkinnableContainer 并将其替换为包含一些基于 actionScript 的绘图的 VGroup。
现在您看到的是一个 VGroup(深灰色),其中包含其他一些 VGroup(此处带有标题的组),然后每个小部件都是一个带有标签和小部件的 HGroup。我只对文本使用 Label 和 TextInput。
对于另一个只有 4 个文本小部件的页面,或者另一个只有一个带有自定义项目渲染器的列表的页面,创建时间甚至很慢(创建视图需要几秒钟),其中每行是一组 4 个标签.
所有的东西都是用 RobotLegs 连接的,没什么花哨的,一个模型被注入到视图中,一开始我在视图上设置了一个成员变量,这个对象来绑定我的变量。
坦率地说,我现在的想法是:它闻起来很可疑,因为如果我把所有事情都做对了,就不可能有这么低的性能,并且认为 flex 在移动平台上具有竞争力。所以现在我正在尝试逐个禁用应用程序,以尝试找到可能会减慢它的原因。我有几个嫌疑人要检查,例如,我有一些约束性警告要检查,然后看看 robotlegs 是否也遇到了问题。
所以我在这里的主要问题是您的想法,您能否对“是否存在问题”和“我们如何解决它”有一些想法。
谢谢
【问题讨论】:
-
不幸的是,这个问题太模糊了,无法回答。我认为您需要进行正式的代码审查才能获得任何有用的信息。众所周知,Flex [和 Flash] 在移动设备上性能不佳。我想我听说 Robotlegs 在 Mobile 上引入了其他问题。每次视图更改时都会重新创建视图,并且 Robotlegs 会重新做所有的初始化工作。这可能很耗时;但我会从一个真正简单的东西开始(比如单个视图/按钮),然后慢慢添加东西,看看是什么导致了速度变慢。
-
这是我今天下午的计划。我知道我的问题有点含糊,但以防万一有人有想法。感谢您对我的了解。
-
我的 Flash 手机游戏存在性能问题,我通过简化图形解决了这些问题。但从屏幕截图中看,您似乎没有任何复杂的图形。
标签: performance apache-flex mobile