2009-08-06 12 views
0

Nach dem Ausführen mit dem Speicheranalysator scheint meine App seinen Speicherverbrauch sehr langsam zu erhöhen.iphone Speicherauslastung

Der Analysator hat Speicherverluste bei bestimmten Ereignissen erkannt, die ich schnell behoben habe. Aber dieser langsame Speicherverbrauch tritt auf, wenn ich nichts in der App mache. Die App startet im Grunde nur. Der Verbrauch ist deutlicher, wenn ich ein Objekt berühre und es bewege.

Gibt es ein nicht erkennbares Leck in meiner App oder ist das normales Verhalten (vielleicht von internen Framework-Bibliotheken)?

Dank

Antwort

0

einige Male Speicher analtzer auch Lecks in unserer Anwendung verfolgen nicht in der Lage. Der beste Weg ist, dass wenn der Speicherverbrauch erhöht wird, in diesem Controller überprüft wird, ob alle Objekte korrekt freigegeben sind oder nicht.

1

Das Leaks-Tool erkennt Programmierfehler (Objekte gehen aus dem Bereich aus, ohne freigegeben zu werden), können jedoch keine semantischen Fehler erkennen. Ein häufiger Fehler dieses Typs besteht darin, etwas beizubehalten, nachdem Sie es in einem Array oder in einer globalen Variablen beendet haben. Eine iPhone-spezifische Ursache, die ich gesehen habe, besteht darin, Aufrufe in einen UINavigationController zu pushen, ohne die zu bereinigen, die Sie nicht mehr verwenden werden.

+0

Im sehenden langsamen, aber konstanten Speicher erhöht sich, nur indem man die App sitzen lässt und nichts tut. obwohl es realistischerweise ist, macht es immer 1 Sekunde über einen NSTimer. Ich mache auch ein bisschen CG ... Zeug (um Quarz bezogene Grafiken zu rendern). Vielleicht hat das etwas damit zu tun, dass Erinnerungen nicht freigegeben werden. auch, ich habe ein paar View-Controller. aber sie sind Autoreleased. Also ich glaube ich bin ok in diesem Bereich. Danke. –

+0

Auch ... ich habe den Analysator falsch gelesen. Ich habe die "Gesamt-Bytes" -Spalte beobachtet - speziell nahm ich an, dass ich überall einen drastischen Speicherverlust hatte, da diese Spalte weiter anstieg. –