ios - 为什么 SceneKit CPU 使用率这么高?
问题描述
我用 SceneKit 开发了一个应用程序。我在 iPhone 10 上对其进行了测试,但为了进行优化,我切换到了 iPhone 6。
我看到了几个问题。
即使我停止所有动画,CPU 利用率也是 %80,只是为了显示静态摄像机视图。当动画完全正常运行时,它几乎保持这种状态。
FPS 大部分时间是 60,但有时会变为 59 56,但看起来,感觉就像是 1 FPS。
我正在使用点击与应用程序进行交互,但 iPhone 6 非常无响应并且主要跳过点击。
在 iPhone 10 上,动画大部分时间都是流动的,当我在场景中添加新节点时,我注意到动画中很少出现中断和跳跃行为。为此,我没有添加节点,而是尝试隐藏和取消隐藏节点,将它们添加到“didLoad”中,结果相同。我注意到点击检测没有问题。
我将对象更改为基本形状以测试问题是否来自对象几何形状,但运气不好。
结果几乎一样,正常吗?我的意思是,是适用于 iPhone 10 和更高版本的 SceneKit。
解决方案
长篇大论从评论中继续,但我使用计时器进行移动,让渲染器尽可能地自由转动。假设你在下面做 - 你的逻辑和东西在哪里更新?
extension GameViewController: SCNSceneRendererDelegate
{
func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval)
{
update(vTime: time)
}
}
推荐阅读
- spring-batch - Spring Batch 需要很长时间才能完成工作
- sonarqube - 在解决了关于 sonarqube 的所有问题后,我们如何才能获得新的项目?
- python - I am getting unbound local error while pickle loading a file
- flask - 从列表创建 Flask 路由
- java - 需要使用 Selenium 从包含多个数字的字符串中提取特定数字
- c - 从 fork() 子进程中调用单独的函数
- arduino-uno - 与 FONA 3G(又名 SIM5320a)通信的问题
- ios - 通过 ABM(自定义应用选项)将 Apple iOS 应用分发给使用自己的设备的公司员工
- python - 在同一个 Jupyter 笔记本中使用多个内核
- mdns - Windows 上的工业标准 UDP 广播?