Flex Profiler没有向我展示我的期望......我做错了吗?

时间:2009-07-28 14:33:03

标签: flex actionscript-3 actionscript flex3 profiling

我正在尝试分析我的Flex代码的性能,但我没有得到我期望的结果:挂钟说我的应用程序需要大约30秒才能加载,但是我按累计时间对分析*结果进行排序,数字不加起来:有一种方法[enterFrameEvent],其累计时间为~8000ms ,然后是一堆累积时间微不足道的方法: screenshot of profiling output http://img.skitch.com/20090728-j1rpxigiceutjw955j35sm74ag.jpg

但即使总结累积时间,也会花费大约15秒的时间。 那个时间去哪了?有什么我明显做错了吗?

有关我的应用程序的更多背景信息:加载时间是HTTP服务数据接收的直接结果。数据请求在Application的{​​{1}}处理程序(所选行)中进行,在数据从服务器到达时以递归方式处理。执行处理的方法(包括结果处理程序)确实出现在探查器的方法列表中,但它们具有无关紧要的运行时间(~30ms)。

*:我通过点击FlexBuilder中的小“配置文件”按钮进行分析,让应用程序启动,然后单击“性能快照”按钮。我还尝试发送请求以响应按钮单击:使用分析器启动应用程序,单击“性能快照”按钮,单击按钮(以请求数据),等待处理数据时约30秒,然后再次单击“性能快照”。结果相似。

修改:更多信息:当我说“加载”时,我的意思是“我的浏览器已被锁定,并且在完成之前不会响应任何内容”。此外,运行内存配置文件不会显示任何太意外(应用程序启动时出现峰值,但之后没有重要的分配)。

编辑2 :有些printf调试告诉我,事实上,我的结果处理程序不是一直占用的 - 它是在完成之后执行的其他操作。< / p>

ª:是的,我意识到这是一个完全没有意义的测量......但我想说明一点。

PS:抱歉可怕的JPGification ...... Skitch不做PNG:'(

2 个答案:

答案 0 :(得分:1)

好的,问题解决了。

事实证明,设置mx:Label的text字段需要Ω(n²)时间(其中'n'是字符串的长度)。有一些优化使得“足够短”的字符串变得更快,但是如果给出一个“足够长”的字符串,你就可以完成所有这些精彩的工作。

毋庸置疑,我的琴弦“足够长”。

甜。

答案 1 :(得分:0)

Profiler不考虑异步HTTPService调用时间,因为在此期间没有运行任何代码。运行时只是在等待HTTP响应。

使用Fiddler或HTTPWatch等HTTP跟踪器插件来测量HTTP调用所用的时间。那么时间应该加起来。