首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS 11 CPU调节和空闲计时器

iOS 11 CPU调节和空闲计时器
EN

Stack Overflow用户
提问于 2018-10-10 02:51:44
回答 1查看 623关注 0票数 4

在iPhone SE上,在升级到CPU11.4之后,我现在看到一个非常奇怪的iOS节流结果,大约在8-10秒之后。我正在使用一个非常简单的示例应用程序(Deployment Target设置为iOS 10.3),它显示单个视图,并在对drawInMTKView的调用中执行解码操作。当应用程序启动时,CPU使用率与预期相同(10-15%),但在8-10秒的窗口之后,CPU似乎大幅减速,因此在CPU全速运行时需要4-5ms的帧解码操作将花费16-17ms (CPU使用率约为60%)。我尝试通过切换iOS标志来禁用任何idleTimerDisabled空闲计时器,但这似乎对此没有任何影响。有趣的是,从纵向旋转到横向旋转将重置此节流,解码将再次全速运行,直到8-10秒的不活动再次抑制它。这到底是怎么回事?我已经读到iOS 11包含一些新的电池管理代码,但我的设备是新的,并且通用->电池中的电池设置表明设备正在全速运行。是否有其他应用程序标志或设置可以禁用此限制?

代码语言:javascript
运行
复制
(full speed)
decode time 5.74 ms
decode time 5.87 ms
decode time 5.37 ms
decode time 5.81 ms
decode time 5.56 ms
decode time 5.97 ms

(after 8-10 second, reduced speed)
decode time 16.65 ms
decode time 16.65 ms
decode time 17.02 ms
decode time 16.49 ms
decode time 16.95 ms
decode time 16.03 ms
EN

回答 1

Stack Overflow用户

发布于 2018-11-25 07:32:44

这可能与您的经验相关:我们发现,分析应用程序的行为可能会在不合适的时候欺骗这些版本的iOS进行降频。在未连接到主机PC的发布版本中不会出现此问题。

我们有一个应用程序,它的渲染循环运行时间不到8ms -远远低于60fps游戏所需的约16ms。当连接到分析器时,目标设备将检测到这一点并关闭时钟-但与分析器通信的开销将使帧时间超过16ms,从而导致30fps的游戏。

除了认识到它正在发生并考虑到它之外,我们找不到任何解决方案。当我们将额外的渲染负载添加到应用程序中时,将其推到8ms以上,问题就消失了,因为目标设备不再降频。

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

https://stackoverflow.com/questions/52727578

复制
相关文章

相似问题

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