我有一个 iOS 应用程序,它可以从设备相机中抓取帧,并进行一些 CPU 密集型图像处理。在 iPad 2、iPad 3 和 iPhone 4s 上,该应用程序以每秒 30 帧 (fps) 的速度运行。我最近在 iPhone 5 上对其进行了测试,大部分时间它以 30 fps 运行。有时我注意到它会下降到 15 fps 左右,这是我在其他设备(据说硬件较慢的设备)上从未体验过的。我已经努力追查这个问题,并且我学到了很多东西,但没有找到解释。以下是我的一些观察,可能会为正在发生的事情提供线索:
- 它只发生在 iPhone 5 上
- 尝试在手机上分析应用程序时无法重现问题
- 该应用程序在多个线程上运行,帧抓取并将图像转换为我需要的格式在单独的线程上运行以进行密集的图像处理。帧抓取线程永远不会低于 30fps,它只是下降的图像处理线程。这意味着我的问题不是由于某些原因(例如低光照水平)导致相机帧速率下降。
- 我倾向于通过启动应用程序、点击 iPhone 的待机按钮、点击主页按钮并返回应用程序来重现问题。如果我重复此 3-6 次,问题通常会发生(但并非总是如此)。
- 似乎与 iOS 6.0 无关,它在带有 iOS 6 的 4s 上运行良好。
- 当问题发生时,即使终止应用程序并重新启动它通常也不会恢复帧速率(表明它是与 iPhone 5 相关的我的应用程序之外的问题)。
- 将手机连接到我的电脑并重建应用程序似乎总是可以解决帧速率问题。
这很奇怪。会不会是 iPhone 5 有时会降低手机的时钟速度以延长电池寿命(iPad 和 iPhone 4s 没有这样做)?
我很想听听任何有类似经历的人。
我的应用程序在 iPhone 5 上不应该看起来更糟,它应该看起来更好!
提前谢谢了,
凯文
更新
我做了更多的测试,但仍然没有发现问题。这是我尝试过的。
- 我已经删除了线程
- 我删除了一些我正在使用的第三方
- 删除了所有日志记录
- 试图在仪器中重新创建并失败。该问题不会发生在仪器中
我已经没有想法了。想听听任何在 iPhone 5 上遇到过帧速率下降的人的意见吗?iPhone 5 有省电模式吗?