iOS上CPU使用率和功耗之间关系的具体细节是什么?

时间:2017-01-10 19:12:12

标签: ios cpu battery

我已经阅读了Apple关于CPU功耗的文档,但我仍然有一些挥之不去的问题。

1%的CPU使用率是否具有相同的开销以保持CPU的开启状态,因为100%的CPU使用率?

每个核心是否独立上电和下电?

CPU开始空闲后关机需要多长时间?

系统通常会将CPU用于自己的任务,从而保持CPU不受影响吗?

对于我的应用程序,我发现很难让CPU在任何相当长的时间内达到0%。在典型的会话中,当用户在应用程序中移动时,至少会有源源不断的UIScrollView委托调用和UITableViewCell回收调用,更不用说与内容进行交互了。但是,根据这篇文章https://apple.stackexchange.com/questions/2876/why-does-gps-on-the-iphone-use-so-much-power,CPU听起来像是一个主要的能源元凶。我希望即使在他们使用应用程序时暂停一小会让CPU节省一些电力,那么我就可以完成摆脱长时间运行的任务。

1 个答案:

答案 0 :(得分:2)

这可能是一个太宽泛的问题,无法以这种格式得到真正回答。所有这些都取决于"并且随着操作系统和硬件的变化而变化。但是,您应该首先观看各种energy-related videos from WWDC(其中有很多)。

原则上,0%CPU使用率和1%CPU使用率之间的差异是巨大的。但是,1%和100%之间的差异也是巨大的。系统绝对可以打开和关闭CPU的不同部分(包括整个核心),具体取决于它的繁忙程度,以及它是否可以定期降低到几十毫秒甚至几十毫秒,它可以显着提高电池寿命(这就是为什么最新版本的iOS允许您指定定时器容差,因此它可以批量协同工作然后再返回低功耗模式。)

所有这一切,当用户实际与您的应用进行交互时,您不应期望处于零CPU。显然,响应用户将开始工作。您应该通过仪器探索您的能源使用情况,以寻找过多的地方,但我希望CPU可以“做事”#34;当用户滚动时(怎么可能不滚?)你不应该试图人为地注入暂停或任何让CPU睡眠的东西。作为一般经验法则,如果它可以帮助您更快地完成,然后什么都不做,最好完全使用CPU。我的意思是,最好尽可能快地解析所有大量下载(作为示例)并使用100%CPU,而不是将其展开并使用20%CPU达5倍。

可以使用CPU。你只是不想浪费它。