我正在使用 CADisplayLink 以 60 FPS 执行名为 gameLoop 的功能,起初应用程序运行良好。然后在随机时间(可能是 5 秒或 1 分钟),fps 下降到 40 FPS 左右。
经过几天的论坛搜索、调试、优化渲染、分析和分析我的应用程序,我决定从 gameLoop 函数中删除所有内容,除了几行计算自上次调用 gameLoop 以来的时间。我无法弄清楚为什么 CADisplayLink 以 60 FPS 调用 gameLoop 一段时间,然后在 gameLoop 几乎什么都不做时以 40 FPS 调用它。
我实现了一个暂停/取消暂停功能,它使显示链接无效并重新启动它。当我重新启动显示链接时,应用程序再次以 60 FPS 运行,直到它随机下降。
提前感谢任何可以让我了解为什么会发生这种情况的人。