Ich habe gerade mein Projekt von Lecks befreit, aber es gibt immer noch Tausende von Objekten unter der Kategorie "GeneralBlock-0". Die Anzahl der Nettozuweisungen ist durch das Dach (es nähert sich eine Million, wie ich tippe), aber keine von ihnen sind Lecks und keiner von ihnen hat eine Größe größer als 0 Bytes.Tausende neuer Objekte der Größe 0 werden meiner Nettogesamtmenge jede Sekunde hinzugefügt, sollte ich mir Sorgen machen?
UPDATE & EDIT:
Quartz ist für alle die problematische Objekte verantwortlich.
Die verantwortlichen Anrufer sind (in der Reihenfolge der Ausführung pro Iteration der Spielschleife:
-[CALayer setPosition:]
x_hash_table_new_ // x2
hash_table_modify
-[CALayer setPosition:] // x9
-[CALayer(CALayerPrivate)_copyRenderLayer:flags:] //x13
Wenn auf einem Gerät ausgeführt werden, 48 Byte große Objekte werden unter GeneralBlock-64 zugeteilt, 128, 256 usw. mit . die gleichen Eigenschaften wie oben beschrieben Diese ist nicht akzeptabel, da es offensichtlich eine signifikante Verlangsamung verursacht Dies ist, was Code in meinem Projekt das Problem verfolgt wird.
topRow.center = CGPointMake(topRow.center.x,topRow.center.y-PIXELS_PER_FRAME);
while (nextRow = thisTopRow.below) { //stops running when thisTopRow.below is nil
nextRow.center = CGPointMake(nextRow.center.x,nextRow.center.y-PIXELS_PER_FRAME);
if (nextRow.center.y+20 < 401 && !nextRow.userInteractionEnabled)
[nextRow enableInteraction];
thisTopRow = nextRow;
}
I w als unter dem Eindruck, dass CGPoint ein Typ war, und würde am Ende des Codeblocks freigegeben werden. Warum hemmt es meine Erinnerung? Wenn es darauf ankommt, werde ich die Trace-Datei hochladen, die ich für Interessierte in Instrumenten gespeichert habe, aber ich bin mir ziemlich sicher, dass ich alles abgedeckt habe.
Das gleiche Problem tritt in iTennis von iCodeBlog.com, ein Tutorial, das ich verwendet habe, um loszulegen. Alles deutet darauf hin, die Position einer UIImageView zu ändern, entweder durch Ändern der Mitte oder des Frames. – Tozar