2012-04-07 10 views
0

Das ADT Eclipse-Plugin meldet Speicherverluste, wenn ich die Android-Anwendung ausführen (wenn es Lecks in es hat). Wie erkennt die VM (oder das Plugin) Speicherlecks zur Laufzeit? Was ist der Erkennungsalgorithmus dahinter? Ist die Erkennung in der Produktionsumgebung aktiviert?android memory leak detection

+0

Was gab Ihnen diese Idee? Es gibt keine "Speicherlecksuche". Das wäre toll :) – 207

+0

Sie können von Logcat etwas wie "Ihre Anwendung ist undicht" und die damit verbundenen Stacktrace sehen. Ich schätze, es könnte nicht alle notwendigen Lecks erfassen, aber für einige kann es tatsächlich. – dacongy

+0

Aber das ist eine Ausnahme. Und es hat wahrscheinlich nichts mit Speicherlecks zu tun. Können Sie einen solchen Stacktrace zur Klärung bereitstellen? Hab das nicht gesehen. Das System/der Garbage Collector kann Speicherverluste jedoch nicht erkennen, da der GC nicht wissen kann, ob Verweise ein Leck verursachen, da es nicht wissen kann, dass das referenzierte Objekt freigegeben werden sollte. Das ist nicht möglich. Nur der Entwickler kann das wissen – 207

Antwort

0

Es gibt keine Erkennung für Speicherlecks, die vom System verarbeitet werden. Die Erklärung ist in den Kommentaren der Frage