首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法解释的帧速率仅在iPhone 5上下降

无法解释的帧速率仅在iPhone 5上下降
EN

Stack Overflow用户
提问于 2012-12-13 15:10:33
回答 1查看 1.5K关注 0票数 2

我有一个iOS应用程序,它可以从设备、摄像机抓取帧,并进行一些相当密集的图像处理。在iPad 2、iPad 3和iPhone 4s上,应用程序以每秒30帧的速度愉快地运行。我最近在iPhone 5上测试了它,大多数情况下它的运行速度是30 fps。偶尔我会注意到它下降到了大约15 fps,这在其他设备(据称硬件速度较慢的设备)上我从未体验过。我努力去追踪这个问题,我学到了很多东西,但没有找到解释。以下是我的一些观察结果,它们可能会给我们提供一些线索:

  • 它只发生在iPhone 5上
  • 当我试图在电话上分析应用程序时,我不能重新创建这个问题。
  • 应用程序运行在多个线程上,框架抓取图像,并将图像转换为我所需的格式,运行在一个单独的线程上,进行密集的图像处理。帧抓取线程从不会掉落到30 its以下,只有图像处理线程才会下降。这意味着,我的问题不是由于相机的帧速率下降的原因(如低光照水平)。
  • 我倾向于通过启动应用程序、点击iPhones备用按钮、点击主页按钮和返回应用程序来重新创建问题。如果我重复这个3-6次,这个问题经常发生(但不是总是这样)。
  • 似乎与iOS 6无关,它在iOS 6的4s上工作得很好。
  • 当出现问题时,即使关闭应用程序并重新启动它,也常常不会使框架恢复(这表明它是我的应用程序之外的一个与iPhone 5相关的问题)。
  • 连接手机到我的电脑和重建应用程序似乎总是解决帧速率问题。

这很奇怪。难道iPhone 5有时会降低手机的时钟速度来延长电池续航时间( iPads和iPhone 4s却没有)吗?

我想听听任何有类似经历的人的意见。

我的应用程序不应该在iPhone 5上看起来更糟--它应该看起来更好!

事先非常感谢,

凯文

更新

我做了更多的测试,但仍然没有发现问题。这就是我试过的。

  • 我已经删除了线程
  • 我删除了一些我用的第三方
  • 移除所有测井
  • 试图在乐器中重现却失败了。这个问题不发生在仪器上。

我的想法已经用完了。喜欢听谁谁有经验的帧率放缓的iPhone 5?iPhone 5有省电模式吗?

EN

回答 1

Stack Overflow用户

发布于 2012-12-13 15:36:03

最有可能的原因是代码中的争用条件只会被iPhone 5上的特定时间所绊倒。我会四处寻找有资源争用的地方,并确保正确地处理它们,尤其是执行超时的地方(因为您没有完全死锁或崩溃)。

你提到你在多个线程上运行。您的意思是您正在使用NSThreadperformSelectorInBackground:NSOperation或GCD吗?直接使用NSThread是线程和资源问题的常见原因,因为与使用NSOperation或GCD相比,使用它更难正确地完成任务。

如果您曾经调用过performSelectorInBackground:,我会非常怀疑这段代码,因为这个调用非常容易被错误地使用(而且几乎不应该被使用)。离开应用程序并重新启动它往往会导致问题,这尤其让我怀疑您正在视图控制器中手动生成线程(这是一个常见的错误)。performSelectorInBackground:的问题在于,没有一种简单的方法可以知道您已经为此生成了一个线程。这样你就可以得到比你想要的更多的线程。

和所有的表演一样,你应该从乐器开始。特别是在时间轮廓仪和线程工具。

这类问题的另一个常见原因是:审核NSLog的使用情况。它是非常缓慢和同步的。在多个线程上运行它会显著影响性能。

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

https://stackoverflow.com/questions/13862743

复制
相关文章

相似问题

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