我试图分析我的Flex代码的性能,但我没有得到预期的结果:墙上的时钟显示,我的应用程序需要大约30秒的时间来加载,但是当我按累积时间对分析结果进行排序时,数字并不加起来:有一个方法[enterFrameEvent],它的累积时间大约为8000 my ,然后是一组累积时间不大的方法:分析输出http://img.skitch.com/20090728-j1rpxigiceutjw955j35sm74ag.jpg的截图
但即使把累积的时间加起来,也会使~15秒下落不明。,那次去哪儿了?,我是不是做错了什么?
关于我的应用程序的更多背景:加载时间是数据从HTTP服务接收的直接结果。对数据的请求是在Application的creationComplete处理程序(选定的行)中提出的,而当数据从服务器到达时,则以递归的方式处理数据。处理的方法(包括结果处理程序)确实出现在分析器的方法列表中,但它们的运行时(~30 is )并不重要。
*:我是通过单击FlexBuilder中的“配置文件”按钮,让应用程序启动,然后单击“性能快照”按钮来进行分析。我还尝试发送请求以响应按钮单击:使用分析器启动应用程序,单击“性能快照”按钮,单击该按钮(请求数据),在处理数据时等待大约30秒,然后再次单击“性能快照”。结果相似。
编辑:更多信息:当我说“加载”时,我的意思是“我的浏览器被锁住了,在它完成之前不会响应任何东西”。此外,运行内存配置文件不会显示任何意外的东西(在应用程序启动时会出现一个尖峰,但之后没有显着的分配)。
编辑2:一些printf调试已经告诉我,实际上,一直占用我的结果处理程序的不是我的结果处理程序,而是在它们完成后执行的其他东西。
是的,我知道这是一个完全没有意义的测量.但我想说的是。
对不起,糟糕的JPGification.Skitch不做PNG:
发布于 2009-07-28 17:46:40
好了问题解决了。
结果表明,设置mx:Label的text字段需要Ω(N 2)时间(其中'n‘是字符串的长度)。有一些优化可以使“足够短”的字符串更快,但是如果字符串“足够长”,您就可以完成所有这些出色的工作。
不用说,我的弦“够长了”。
甜。
发布于 2009-07-28 14:44:56
分析器不考虑异步HTTPService调用时间,因为在此期间没有运行任何代码。运行时只是等待HTTP响应。
使用像Fiddler或HTTPWatch这样的HTTPWatch插件来测量HTTP调用所花费的时间。那么时代就该加起来了。
https://stackoverflow.com/questions/1194520
复制相似问题