【问题标题】:Sudden Drop in Performance on an iPad AIR application with renderMode=GPU使用 renderMode=GPU 的 iPad AIR 应用程序性能突然下降
【发布时间】:2012-02-09 13:40:59
【问题描述】:

我们有一个在 Apple iPad 上运行的 AIR 应用程序,它的性能偶尔会突然下降。帧速率从 60fps 下降到 2fps,并且永远不会恢复。

我们的一些观察结果是:

  • 这只能在 iOS 4 上重现,但不能在 iOS 5 上重现 - 我们已经 在两台相同的 iPad(第 1 代)上进行了检查
  • 性能偶尔会下降,但总是在我们切换时发生 应用之间 - 从我们的应用到另一个应用并返回
  • 很少,性能下降也发生在第一次启动 应用
  • renderMode=CPU 中不会出现此性能问题,但此 模式对我们不起作用,因为渲染很难看,尤其是 在旋转位图上

有没有其他人遇到过类似的问题?任何想法如何解决它?

【问题讨论】:

  • 你玩过cacheAsBitmap吗?此外,对于 IOS 上的旋转和/或缩放图像,您需要使用 cacheAsBitmapMatrix。网上有很多关于这两个的信息,所以我会让你和谷歌整理一下。
  • 是的,我们同时使用这两种方法。使用renderMode=GPU 的原因之一就是支持cacheAsBitmapMatrix。请记住,cacheAsBitmapMatrix 仅适用于 GPU 模式,不适用于 CPU。

标签: flash actionscript-3 ipad ios4 air


【解决方案1】:

这听起来像是 GPU 渲染的 AIR 运行时错误,因为它只发生在 iOS 4 而不是 iOS 5 上。但是,您的 iOS 4 设备的板载 GPU 内存可能太少,无法保存所有缓存的转换.一旦您的缓存已满,就会看到巨大的性能下降(可能与您看到的下降相同)。您应该尽可能多地使用对象池以将缓存的转换保持在最低限度。

【讨论】:

  • 感谢您的回答!基本上,我们得出了相同的结论。现在我们要做的是观察帧速率,当我们检测到性能问题时,我们开始关闭cacheAsBitmapfalse。我们还删除了转换矩阵的缓存,并尝试将缓存的对象保持在最低限度——仅缓存对 UI 必不可少的移动/动画对象。不过,我同意你的观点,这似乎是一个 AIR 错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-23
  • 2013-12-12
  • 1970-01-01
  • 2020-02-24
  • 2016-07-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多