Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 什么可能会减慢我的flex mobile应用程序的速度?_Performance_Apache Flex_Mobile - Fatal编程技术网

Performance 什么可能会减慢我的flex mobile应用程序的速度?

Performance 什么可能会减慢我的flex mobile应用程序的速度?,performance,apache-flex,mobile,Performance,Apache Flex,Mobile,过去两年,我一直在使用flex开发一些桌面应用程序。到目前为止,我从未遇到过任何与性能相关的问题,但今天,当我们为iPad完成一个移动应用程序时,我面临着一个挑战,iPad上的应用程序速度非常慢 慢速,意味着当我按下菜单中的按钮来更改splitview时,我必须等待5s左右。然后滚动速度非常慢,不到一帧,我的文本输入开始出错,文本不再在他的框中 我开始阅读大量关于移动平台优化的博客文章和演示文稿,然后重写了我使用的一些组件。例如,我删除了SkinnableContainer,并将其替换为包含一些

过去两年,我一直在使用flex开发一些桌面应用程序。到目前为止,我从未遇到过任何与性能相关的问题,但今天,当我们为iPad完成一个移动应用程序时,我面临着一个挑战,iPad上的应用程序速度非常慢

慢速,意味着当我按下菜单中的按钮来更改splitview时,我必须等待5s左右。然后滚动速度非常慢,不到一帧,我的文本输入开始出错,文本不再在他的框中

我开始阅读大量关于移动平台优化的博客文章和演示文稿,然后重写了我使用的一些组件。例如,我删除了SkinnableContainer,并将其替换为包含一些基于actionScript的绘图的VGroup

现在你看到的是一个VGroup,深灰色的,包含一些其他的VGroup,这里有标题,然后每个小部件都是一个带有标签和小部件的HGroup。我只对文本使用标签和文本输入

创建另一个页面(其中只有4个文本小部件)的视图,或者另一个页面(其中只有一个带有自定义项呈现器的列表,其中每行是一组4个标签)的视图,创建时间甚至要慢几秒钟

所有的东西都是用机器人腿连接的,没有什么特别的,一个模型被注入到视图中,一开始我用这个对象在视图上设置了一个成员变量来绑定我的变量

坦率地说,我现在的想法是:它闻起来很可疑,因为如果我把所有事情都做好,就不可能有如此低的性能,并且认为flex在移动平台上具有竞争力。所以现在我正试着一块一块地禁用这个应用程序,试图找到什么可以像那样让它变慢。我有几个嫌疑犯要检查,比如我有一些绑定警告要检查,然后看看机器人腿是否也有问题

所以我这里的主要问题是你怎么想的,你能不能想一想,有没有问题,我们该如何解决

谢谢

为启动运行探查器,并为需要较长时间的每个操作分别运行探查器。然后对问题进行优先级排序,并尝试使用基本的优化技术来解决它们。 一些您无法快速解决的问题-例如,创建大型组件的时间。唯一的选择是使用AS3重写这些组件,而不使用MXML、样式和任何东西。我确信flash.text.TextField的创建速度比mx.controls.Label快很多倍。其他组件也是如此。 创建组件时,可以以非常低的价格重用它。在你的应用程序中,肯定有很多地方你可以在重新创建的同时重用旧组件。这将节省你的内存和时间。 即使不需要,布局也会重新绘制。如果有很多嵌套布局,请找到最关键的位置,并用一个自定义布局甚至组件替换一系列布局。
这一切都非常耗时。最终你不会得到一个流畅的应用程序,但我相信它可以变得可用。

不幸的是,这个问题太模糊,无法回答。我认为你需要一个正式的代码审查来得到任何有用的东西。众所周知,Flex[和Flash]在移动设备上的性能不是很好。我想我听说机器人腿在移动设备上引入了其他问题。每次视图更改时都会重新创建视图,而机器人腿则会重新完成所有初始化工作。这可能很耗时;但我会从一个非常简单的东西开始,比如一个单一的视图/按钮,然后慢慢添加一些东西,看看是什么导致了减速。这就是我今天下午的计划。我知道我的问题有点含糊不清,但以防万一有人有了主意。谢谢你的提醒。我的Flash手机游戏有性能问题,我通过简化图形解决了这些问题。但从截图上看,你并没有看到任何复杂的图形。我解决了这个问题,基本上就是我所做的:1我用actionscript代码重写了我的容器。2在一些装饰器上添加了一些cacheAsBitmap true。3对几个组件进行了固定布局,似乎所有这些HGroup/VGroup在显示新视图时破坏了我的用户体验。4.发现如果您使用滚动条,则不应在其中输入本机文本。就这样,问题解决了,客户满意,两周内为我编写了200个小时的代码。是时候开始了。