SpriteKit SKView显示字段内存使用情况
我很好奇当showsFields
打开时,内存使用量增长得非常快? 它可以在30秒内增长到500MB。 如果我的mac只有8GB的RAM,我可能在内存警告之前调试不到8分钟,在真实设备上进行调试时效果最差。
下面的屏幕截图是从真实设备(iOS 9.2)测试的。
您可以通过创建SpriteKit项目并在视图控制器内的viewDidLoad()
方法中打开showsFields
来快速尝试。
skView.showsFields = true
如果要查看showsFields
作用,请将此片段放在场景的-didMoveToView(view:)
方法中。
override func didMoveToView(view: SKView) { let myField = SKFieldNode.springField() myField.position = CGPointMake(frame.midX, frame.midY) myField.strength = 1.0 self.addChild(myField) }
这是来自Apple的showsFields
讨论
讨论
启用此调试选项后,每次渲染帧时,都会在场景后面绘制一个图像,以显示场景中包含的任何物理场的效果。
看起来每帧绘制的调试图像没有被正确清除,这可能导致这种内存泄漏。
最好通过https://developer.apple.com/bug-reporting/向Apple提交错误报告,以便他们知道有多个人遇到此问题,并希望能给予更高的优先级。
希望有所帮助。
亲切的问候,Mukund