iOS应用程序在几秒钟后变慢,如果暂停并在调试器中恢复,则速度会恢复

时间:2016-01-29 22:05:06

标签: ios xcode performance

首先,我所提供的细节并不多,所以我意识到这个问题可能看起来不完整。在这个阶段,我真的在寻找任何想法。坦率地说,我对这个感到困惑。

我正在构建一个图形密集的应用程序,真正最大化CPU。根据XCode,设备上的CPU利用率往往约为150%(我知道听起来很奇怪,因为该设备有两个核心,它似乎有可能达到200%)。我已经检测了处理最多的任务,因此我可以看到它们在调试输出中需要多长时间。另请注意,我正在使用-Ofast(积极优化)进行编译,即使对于调试版本也是如此。

这是奇怪的事情。运行应用程序的CPU密集型模式大约需要5-10秒,一切都会变慢。它非常明显。由于我的仪器,我可以看到突然一切都需要大约3倍的时间。它在所有任务中都非常统一,并且它不会加速备份。这真的很奇怪。如果我在调试器中中断执行并继续执行,我会在再次减速之前再执行5-10秒的快速执行。

查看XCode报告的CPU和内存使用情况,一切都保持不变。该应用程序在任何时候都使用不超过90MB的内存。

iOS是否有一项功能可以降低CPU密集型应用程序的速度,或者使设备不足以延长电池续航时间?我意识到我正在与操作系统共享资源,但这是我每次都可以可靠地重现的行为。

同样,我意识到我的问题很模糊,而且我没有相关的代码可以发布。欢迎任何关于原因甚至调试方法的想法。

1 个答案:

答案 0 :(得分:0)

首先,谢谢@thst努力帮助我。我的问题有点愚蠢,因为它真的可以是任何东西。

我最终通过渲染(通过OpenGL,我忘记包含的细节,再次显示我的问题有多糟糕)来解决问题,只有在实际改变了渲染的对象和纹理的状态时。它曾经一直以60FPS渲染。

该应用程序还使用CIDetector来检测面部。我想,但我不确定,CIDetector使用GPU来执行检测。如果是这样,可能会有一些争用GPU资源。 CIDetector阻止等待可能导致整个应用程序减速。

谢谢大家。