renderMode=GPU 时 iPad AIR 应用程序的性能突然下降
我们有一个在 Apple iPad 上运行的 AIR 应用程序,偶尔会遇到性能突然下降的情况。帧速率从 60 fps 下降到 2 fps,并且再也没有恢复过来。
我们的一些观察结果是:
- 这只能在 iOS 4 上重现,但不能在 iOS 5 上重现 - 我们已经 检查发现,在两台相同的 iPad(第一代)上,
- 性能偶尔会下降,但当我们切换时总会发生 返回
- 应用程序之间 - 从我们的应用程序到另一个应用程序并很少 ,性能下降也会发生在第一次启动时 应用程序
- 在
renderMode=CPU
中不会发生此性能问题,但是这 模式对我们不起作用,因为渲染很丑,尤其是 在旋转位图上
还有其他人遇到过类似的问题吗?有什么想法可以解决它吗?
We have an AIR application running on an Apple iPad, that occasionally experiences sudden drop in its performance. The frame rate drops from 60fps to 2fps and it never recovers from that.
Some of our observations are:
- this is only reproducible on iOS 4, but never on iOS 5 - we've
checked that on two identical iPads (generation 1) - the performance drops occasionally, but always happens when we switch
between apps - from our app to another and back - very rarely, the performance drop also happens on first start of the
app - this performance issue does not happen in
renderMode=CPU
, but this
mode doesn't work for us, because the rendering is ugly, especially
on rotated bitmaps
Has anyone else experienced similar issues? Any ideas how to workaround it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这听起来像是 GPU 渲染的 AIR 运行时错误,因为它仅发生在 iOS 4 上,而不是 iOS 5 上。但是,您的 iOS 4 设备的板载 GPU 内存可能太少,无法保存所有缓存的转换。一旦您的缓存已满,将会看到巨大的性能下降(也许与您看到的下降相同)。您应该尽可能多地使用对象池,以尽量减少缓存的转换。
This sounds like a AIR runtime bug with the GPU rendering since it happens only on iOS 4 and not iOS 5. However, it is possible that your iOS 4 device has too little on-board GPU memory for keeping all the cached transformations. Once your cache is full, a huge performance drop will be seen (perhaps the same drop your seeing). You should use object pooling as much as possible to keep the cached transformations minimal.