首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flex应用程序的高CPU利用率

Flex应用程序的高CPU利用率
EN

Stack Overflow用户
提问于 2010-03-11 05:05:57
回答 2查看 743关注 0票数 0

我有一个Flex应用程序。令人惊讶的是,当在我的笔记本电脑上运行时,它使我的CPU负载保持在~50% (它在40%到60%之间波动)。笔记本电脑是已有4年历史的戴尔型号-处理器为英特尔T1350 @ 1.86GH。奇怪的是,应用程序将我的CPU保持在50%,即使它什么也不做。它是一个静态的、相当复杂的Flex屏幕。我没有特效运行,没有服务器通信,没有动画。当然,它有效果和类似的动态行为,但在这个测试中,我没有接触到它。我简单地加载它,它保持静态,但CPU仍然是50%。当然,我分析了应用程序,但它没有给我提供很多有用的信息。我甚至在浏览器被另一个窗口隐藏( CPU仍然很高)的情况下分析了应用程序,大部分时间花在以下三个项目上: Timer.tick - 54.5%,enterFrameEvent - 21.5%和reap - 12.5%。所有这些都是Self Time,即不是在这三个方法中调用的其他方法。

任何可能导致如此高的CPU利用率的想法都非常受欢迎。..。或如何确定根本原因。

附加信息:当相同的应用程序在我的开发机器上运行时(CPU,Intel Core2QuadCPU@2.4GH),利用率当然会下降到16%,因为Q6600的速度快了好几倍,但对于静态屏幕和这种快速的CPU来说,它仍然太多了。同样,如果我用IE运行它(上面的所有数字都是FF),那么CPU利用率接近0%。我猜ActiveX flash player版本通过将工作委托给GPU (我的视频卡)来设法卸载CPU,但这只与IE +良好视频卡的场景相关,这不是我对大多数用户的假设。

我还注意到,将FPS提高到60 (上面的数字是默认的24 fps)并不会真正改变CPU负载。将FPS减少到12会降低CPU负载,但不是成比例的,这不是解决此问题的方法。

我倾向于认为这个问题与我的UI层次结构有关。对于flash播放器来说,它可能太复杂和/或太嵌套了,但是为什么在屏幕完全静态的情况下要占用CPU时间呢?

需要帮助。

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2010-03-11 05:29:22

一些想法。

  1. 尽可能避免嵌套,较深的UI层次结构会导致渲染速度减慢
  2. 只将需要绘制的元素添加到舞台上,不在场景中的元素也会减慢渲染速度。
  3. 如果您有很多小部件,则可能不需要渲染/初始化所有这些小部件。

但是,我不明白为什么上面的(1)或(3)会与FPS有关。你在画什么?

票数 0
EN

Stack Overflow用户

发布于 2010-03-11 08:23:34

我浏览了一下您的问题,看到您提到了Timer类。如果你在整个应用程序运行过程中都使用计时器,那就很酷了。

但是,很有可能您没有在定时器上设置removeEventListener,并且(为了以防万一)在使用完定时器后也没有设置定时器= null。根据您使用timer对象的方式,您还可以循环并重复创建新的timer实例。再加上没有调用removeEventListener,大量的timer实例可能永远不会被垃圾回收。

这是我发现的一个潜在问题。祝好运。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2420576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档