Cocos2D / iOS7: Kontinuierliche Erhöhung der Speicherauslastung für den Standardcode

8

So sieht es mit dem iOS7-Simulator aus, wenn die Anwendung nur ohne Benutzerinteraktion ausgeführt wird (ich betreibe auch keinen Code von mir, nur Boilerplate Cocos2D):

Kein solches Problem mit 5.0- & gt; 6.1. Der Code, der dieses Problem verursacht, ist Cocos2D-Standardcode, den ich mit Kommentar zu minimieren versuchte, und dies ist der Mindestcode von App delegate:

%Vor%

Ich habe auch CCDirector von directorDidReshapeProjection startup auskommentiert, um meinen eigenen Code zu eliminieren. Wenn die Anwendung jetzt startet, sehe ich nur die Bildrate auf dem schwarzen Bildschirm.

Das gleiche Ergebnis sehe ich von Instruments.

Leider kann iOS 7 nicht auf dem Gerät getestet werden, aber ich erwarte nicht, dass der Simulator so funktioniert.

Aktualisierung:

Ich habe 2 Markierungen mit folgendem Ergebnis gemacht.

Alle Elemente sind diese 64-Byte-Zuweisungen. Ich habe keine Ahnung, um welchen Typ es sich handelt. Erwähnenswert ist, dass ich den neuesten stabilen Cocos2D 2.1 benutze.

Update # 2:

Aufrufstapel mit 64 Byte Zuweisung.

    
Pablo 01.10.2013, 08:20
quelle

3 Antworten

3

Nicht so sehr eine Antwort als eine Bestätigung: Es scheint ein Problem speziell für iOS 7.0 und cocos2d 2.1 zu sein.

Ich habe das gleiche Verhalten beobachtet: cocos2d 2.1 auf dem iOS 7.0 Simulator erhöht die Speicherauslastung im Laufe der Zeit. Und zwar alle paar Sekunden um ~ 1 MB. Aber lassen Sie uns das ignorieren, der Simulator ist kein echtes Gerät.

Auf einem Gerät (iPod touch der 5. Generation mit iOS 7) wird kaum Speicherplatz belegt. Die Verwendung markierter Generationen über einen Zeitraum von 5 Minuten zeigt ein Wachstum von höchstens 15 KB an. Gelegentlich gibt es einen Block von 10 bis 15 KB, der aber irgendwann freigegeben wird, zumindest das meiste davon. Die Speichermenge, die über einen Zeitraum von 5 Minuten hinzugefügt wird und bleibt, beträgt ca. 5 KB. Nicht viel, aber auch mehr als nichts für eine Vorlagen-App, die nichts tut oder darauf reagiert.

Der Speicher, der hinzugefügt und nie auf dem Gerät freigegeben wird, wird meist als <non-object> wie im Simulator markiert, mit ein paar CGPath dazwischen geworfen. Dies könnte darauf hindeuten, dass es in cocos2d 2.1 auf iOS 7 ein Problem mit der Speicherverwaltung geben könnte - obwohl es zu gering ist, um negative Auswirkungen auf die meisten Apps zu haben (~ 100 KB pro Stunde).

Sprite Kit und OpenGL-Anwendungen sowie das Ausführen auf einem iOS 6-Simulator (ich konnte auf einem iOS 6-Gerät nicht testen) zeigen kein solches Problem, Livebytes bleiben stabil mit markierten Generationen, die überhaupt kein Wachstum melden.

    
LearnCocos2D 01.10.2013 09:52
quelle
0

Bist du sicher, dass Zombie-Objekte nicht aktiviert sind?

Klicken Sie auf Ihr Produkt - & gt; Edit scheme und auf der Registerkarte Diagnose, wenn Sie "Zombie-Objekte aktivieren" aktiviert haben, deaktivieren Sie es und versuchen Sie es erneut.

    
George Theodorakis 21.06.2014 10:24
quelle
0

Ich weiß, dass es zu spät ist, um auf dieses Problem zu antworten, aber lass es einfach hier. Es gibt einen Typ, der über nszoombie spricht, wenn Sie also debuggen von xcode mit dieser Option aktivieren, wird dieses Problem verursacht. Schalte es aus und überprüfe erneut

    
user2631285 10.09.2015 08:35
quelle