gpt4 book ai didi

ios - Cocos2D 2.1 - 空闲时 CPU 使用率高

转载 作者:行者123 更新时间:2023-12-03 19:51:29 27 4
gpt4 key购买 nike

我在 Cocos2d 2.1 中创建了这个 iPhone 应用程序。

当应用程序第一次启动时,它会呈现全屏背景和 UIACtionSheet,用户必须在其中选择一个选项来启动应用程序。就是这样。该操作表由委托(delegate)运行的第一个场景(HelloWorldLayer 场景)呈现。

没有加载任何其他内容。我负责的任何线程上都没有运行任何内容。即便如此,CPU占用率也在20%左右。我已经在仪器上对此进行了分析,这就是我所拥有的:

enter image description here

我看到这个 [CCGLView swapBuffers] 位于需要注意的地方,即 CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION (CoreFoundation)。

如果我选择“仅显示 obj-c”,我会看到以下内容:

enter image description here

显然罪魁祸首是这个drawScene,但是一个带有背景图像和UIActionsheet的场景怎么会使用那么多CPU呢?

如何追踪此问题的根源?

注意。这正在设备上进行测试。模拟器上CPU使用率为77%!!!!!

最佳答案

Cocos2d 与任何 OpenGL 应用程序一样,每帧都会重绘屏幕内容。通常这意味着每秒 60 帧。交换帧缓冲区和所有其他相关的开销需要一些 CPU 时间。

所以您所观察到的是正常行为,对此无能为力。渲染引擎中没有“空闲”的概念,即使屏幕内容没有改变(或屏幕为空),它也会绘制屏幕内容,假设屏幕内容通常会发生变化。

但是,您可以暂停 CCDirector 来降低帧速率,从而节省 CPU 周期和电池。或者调用 stopAnimation 来完全停止所有更新,包括计划的选择器。然而,帧缓冲区发生的情况是未定义的,通常它会保留下来(即最后渲染的帧“卡住”),但这可能不适用于所有情况和设备。

就模拟器而言:忽略它。它的性能特征没有丝毫可比性,也没有指导意义。

关于ios - Cocos2D 2.1 - 空闲时 CPU 使用率高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19789817/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com