首先,我所提供的细节并不多,所以我意识到这个问题可能看起来不完整。在这个阶段,我真的在寻找任何想法。坦率地说,我对这个感到困惑。
我正在构建一个图形密集的应用程序,真正最大化CPU。根据XCode,设备上的CPU利用率往往约为150%(我知道听起来很奇怪,因为该设备有两个核心,它似乎有可能达到200%)。我已经检测了处理最多的任务,因此我可以看到它们在调试输出中需要多长时间。另请注意,我正在使用-Ofast(积极优化)进行编译,即使对于调试版本也是如此。
这是奇怪的事情。运行应用程序的CPU密集型模式大约需要5-10秒,一切都会变慢。它非常明显。由于我的仪器,我可以看到突然一切都需要大约3倍的时间。它在所有任务中都非常统一,并且它不会加速备份。这真的很奇怪。如果我在调试器中中断执行并继续执行,我会在再次减速之前再执行5-10秒的快速执行。
查看XCode报告的CPU和内存使用情况,一切都保持不变。该应用程序在任何时候都使用不超过90MB的内存。
iOS是否有一项功能可以降低CPU密集型应用程序的速度,或者使设备不足以延长电池续航时间?我意识到我正在与操作系统共享资源,但这是我每次都可以可靠地重现的行为。
同样,我意识到我的问题很模糊,而且我没有相关的代码可以发布。欢迎任何关于原因甚至调试方法的想法。
答案 0 :(得分:0)
首先,谢谢@thst努力帮助我。我的问题有点愚蠢,因为它真的可以是任何东西。
我最终通过渲染(通过OpenGL,我忘记包含的细节,再次显示我的问题有多糟糕)来解决问题,只有在实际改变了渲染的对象和纹理的状态时。它曾经一直以60FPS渲染。
该应用程序还使用CIDetector来检测面部。我想,但我不确定,CIDetector使用GPU来执行检测。如果是这样,可能会有一些争用GPU资源。 CIDetector阻止等待可能导致整个应用程序减速。
谢谢大家。