2016-01-20 5 views
12

Sono curioso di sapere quando showsFields è attivato, l'utilizzo della memoria aumenta rapidamente? Può crescere fino a 500 MB in meno di 30 secondi. Se il mio Mac ha solo 8 GB di RAM, probabilmente ho meno di 8 minuti per eseguire il debug prima dell'avviso di memoria, sarà il peggiore quando eseguirò il debug sul dispositivo reale.SpriteKit SKView indica l'utilizzo della memoria Campi di utilizzo

L'immagine qui sotto è stata testata da un dispositivo reale (iOS 9.2).

Memory Usage

Si può provare rapidamente con la creazione di un progetto SpriteKit e girare showsFields su in viewDidLoad() metodo all'interno del controller della vista.

skView.showsFields = true

Se volete vedere cosa showsFields fa, inserire questo frammento all'interno metodo della scena -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) 
} 

Ecco showsFields discussione da parte di Apple

Discussione

Quando questa opzione di debug è attivata, ogni volta che un quadro è reso, l'immagine viene disegnata dietro la scena che mostra gli effetti di qualsiasi campo di fisica contenuto nella scena.

+2

Hai provato su un dispositivo reale? SpriteKit sul simulatore è piuttosto buggato e inefficiente. – jcaron

+1

sì, avviso di memoria costringe l'app a smettere di –

+0

È un bug. Aspettatevi che venga risolto nel 2017 o nel 2018. Ma non domani. – Confused

risposta

1

Sembra che l'immagine di debug disegnata per fotogramma non venga cancellata correttamente, il che probabilmente sta portando a questa perdita di memoria.

La migliore volontà di presentare una segnalazione di bug con Apple tramite https://developer.apple.com/bug-reporting/ in modo che sappiano che più persone hanno questo problema e, si spera, dare una priorità più alta.

Spero che questo aiuti.

Cordiali saluti, Mukund

Problemi correlati