.render_loop) } func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) { os_signpost(.begin, log: .render_loop, name: "GameLogicUpdate", signpostID: .render_loop, "Game logic update started") DispatchQueue.main.async { self.updates.forEach({ $0(self.gameState) }) } os_signpost(.end, log: .render_loop, name: "GameLogicUpdate", signpostID: .render_loop, "Game logic update finished") } 诊断性能问题 Diagnose Performance Issues