2016-01-18 19 views
8

Ho trascorso da poco le ultime 5 ore cercando di eseguire il debug di una perdita di memoria nella mia app Spritekit.Perdita di memoria per .showsPhysics

Dopo l'avvio di app, ho notato una piccola salita nell'utilizzo della memoria.

Ho trascorso 3 di quelle 5 ore di scavo attraverso il materiale di riferimento, conoscere forte VS debole con ARC (Sicuramente consiglia di leggere su quella per intermedi come me)

È qualcun altro verifica il problema? Se è così c'è qualche tipo di spiegazione? Ecco un piccolo frammento del mio 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") 
    } 
} 

Come potete vedere, non sto facendo nulla di straordinario qui. Vorrei pubblicare il mio codice gamescene, ma è stato tutto commentato nel momento in cui stavo ancora osservando la perdita di memoria.

+0

È possibile aggiornare la domanda con un minimo di codice minimalista in grado di riprodurre un comportamento descritto? Oppure stai dicendo che la perdita sta accadendo anche su un progetto di gioco SpriteKit vuoto quando skView.showsPhysics è impostato su true? – Whirlwind

+0

Ciao @Whilwind, ho aggiornato con un frammento di codice. Vedo dove stai andando con questo. Nonostante commentando che mostra la linea di prodotti Physics e non avendo più perdite di memoria, continuo a dare la colpa al mio codice. Ho aperto un progetto vuoto e da quello che posso dire, non c'è perdita di memoria. È strano, perché dopo aver commentato tutto, a parte alcuni commenti, il mio GameViewController è fondamentalmente il modello di Hello World. Forse potrebbe essere qualcosa a che fare con le mie impostazioni di compilazione ... Che non credo di aver mai incasinato con ... – luckybroman5

risposta

8

Alla fine, per fustrazione, ho appena iniziato a commentare righe di codice, quindi a creare e profilare fino a risolvere la perdita di memoria.

Risulta nel mio file GameViewController.swift,

skView.showsPhysics = true 

era il colpevole. Questo deve essere un po 'un nuovo bug visto che non ho visto questo problema in < IOS 9,2

+0

haha ​​trovato questo dopo il debug per una buona ora pure. –

3
skView.showsFPS = true 
skView.showsNodeCount = true 
skView.showsPhysics = true 

perderà la memoria di almeno 0,3 MB/s.

Inoltre ...

skView.showsFields = true 

enter image description here

perdite di memoria a una velocità di 30-40 MB/s. Mela cattiva!