Android == Speicheranalyse == Eclipse-Speicheranalysator?

46

Ich muss meine Anwendung auf Speicherlecks prüfen, ich muss auch die Speicherzuweisung meiner Anwendung sehen. Ich habe Eclipse Memory Analyzer heruntergeladen und installiert, und es sieht so aus, als ob der erste Schritt darin besteht, einen Heap-Dump zu öffnen. Aber was ist ein Heap-Dump, wie kann ich einen Heap-Dump erstellen. Und wie genau werde ich diese Software benutzen, ich habe etwas gegoogelt, aber ich konnte keine nützliche Information finden Danke

    
aryaxt 24.06.2010, 18:04
quelle

3 Antworten

40

Wenn Sie Ihre App debuggen, öffnen Sie DDMS in Eclipse. Auf der Symbolleiste befindet sich eine Heap-Dump-Schaltfläche, mit der Sie einen Heap-Dump erstellen können, der im Eclipse-Speicheranalysator angezeigt wird. Dies wird nur unterstützt mit dem 1.6+ oder 2.0+ SDK.

    
Robby Pond 24.06.2010, 18:25
quelle
10

Der Heap-Dump der dalvik-VM muss mithilfe des Konvertierungswerkzeugs hprof-conv.exe im Tools-Verzeichnis des Android SDK in das normale hprof-Format konvertiert werden. Sie können dieses hprof mit Eclipse MAT öffnen oder andere Tools sind: YourKit Ссылка und JProbe Ссылка

Neben DDMS können Sie auch den hprof aus Ihrer App / Code (nur neuere SDKs) über Debug.dumpHprofData(...)

erstellen

Beachten Sie, dass Sie in DDMS den Heap sehen können, den Ihre App verwendet. Der native Heap, den externe Ressourcen wie Bitmaps zuweisen, wird nicht angezeigt. Diese Ressourcen müssen jedoch auch bei der Überprüfung auf Speicherlecks berücksichtigt werden. Wenn sowohl der native als auch der app-Heap bis zu 16MB / resp. 24MB erhalten Sie einen OOM-Fehler.

Sie können den nativen Heap, der (z. B. per Bitmaps in Ihrer App) verwendet wurde, über Debug.getNativHeapAllocatedSize() sehen.

    
Mathias Conradt 24.06.2010 19:30
quelle
3

Siehe auch Ссылка

Wenn es hilft, können Sie das Profiling über lokale Codebereiche mithilfe der Debug-API aktivieren. Auf diese Weise haben Sie weniger Ausführlichkeit bei der Analyse der Spuren in zum Beispiel TraceView. Beispiele finden Sie Ссылка .

Und einige detailliertere Informationen zum Konvertieren von DDMS-Heap-Dumps, damit Sie sie in Eclipse Memory Analyzer anzeigen können und Ihre auslaufenden Objekte über die Dominator-Baumwerkzeuge finden: Ссылка

    
Johan Norén 15.07.2011 20:10
quelle