SpriteKit SKView显示字段内存使用情况

Ken*_*iau 12 ios sprite-kit swift

我很好奇什么时候showsFields打开,内存使用量增加得非常快?它可以在30秒内增长到500MB.如果我的mac只有8GB的RAM,我可能在内存警告之前调试不到8分钟,在真实设备上进行调试时最差.

下面的屏幕截图是从真实设备(iOS 9.2)进行测试的.

内存使用情况

您可以通过创建一个SpriteKit项目快试试吧,把showsFields在viewDidLoad()法视图控制器内.

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)
}
Run Code Online (Sandbox Code Playgroud)

以下是showsFieldsApple的讨论

讨论

启用此调试选项后,每次渲染帧时,都会在场景后面绘制一个图像,显示场景中包含的任何物理场的效果.

Muk*_*wal 1

看起来每帧绘制的调试图像没有被正确清除,这可能导致内存泄漏。

最好通过https://developer.apple.com/bug-reporting/向 Apple 提交错误报告 ,以便他们知道很多人都遇到此问题,并有望给予更高的优先级。

希望有帮助。

亲切的问候,穆昆德