内存泄漏.showsPhysics
我最近花了5个小时试图debugging我的Spritekit应用程序中的内存泄漏。
应用程序启动后,我注意到我的内存使用情况的一个小爬。
我花了5个小时中的3个,通过参考材料挖掘,了解强VS VS弱(绝对推荐阅读中间体,如我自己)
有没有人遇到这个问题? 如果有,有什么解释? 这里是我的GameViewController的一个小片段:
class GameViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() if let scene = MainMenu(fileNamed:"MainMenu") { // Configure the view. let skView = self.view as! SKView skView.showsFPS = true skView.showsNodeCount = true skView.multipleTouchEnabled = true skView.showsPhysics = true /* Sprite Kit applies additional optimizations to improve rendering performance */ skView.ignoresSiblingOrder = true /* Set the scale mode to scale to fit the window */ scene.scaleMode = .Fill //var GameSaveData = GameData() // Scene Config //scene.Landscape = "Test_Landscape" //scene.Area = "Start" skView.presentScene(scene) }else{ print("Couldn't Load Game Scene") } }
正如你所看到的,我在这里没有任何不寻常的事情。 我会发布我的游戏代码,但是当我仍然在观察内存泄漏的时候,它被全部注释掉了。
最后,出于狡辩,我开始评论代码行,然后构build和分析,直到内存泄漏得到解决。
在我的GameViewController.swift文件中发现,
skView.showsPhysics = true
是罪魁祸首。 这一定是一个新的bug,看看我在<IOS 9.2中没有看到这个问题
skView.showsFPS = true skView.showsNodeCount = true skView.showsPhysics = true
会泄漏内存至less0.3 MB /秒。
此外…
skView.showsFields = true
以30-40 MB / s的速度泄漏内存。 坏苹果!