2012-09-21 17 views
6

Mam opracowaną aplikację, chcę sprawdzić wyciek pamięci dzieje się w aplikacji. Próbuję z Eclipse MAT, ale nie powiodło się, otrzymuję plik HROF, ale Eclipse MAT nie jest w stanie go odczytać. Czy ktokolwiek może mi pomóc. Każdy inny sposób na znalezienie informacji.Android: Jak przetestować wyciek pamięci w aplikacji?

+0

Przeczytałeś ten post: http://android-developers.blogspot.com/2011/03/memory-analysis-for-android.html, więc co jest mylące? –

+0

Przeszedłem przez to. Mam też plik zrzutu sterty. kiedy próbowałem otworzyć go w analizatorze pamięci Eclipse, tzn. nie można odczytać pliku MAT. –

Odpowiedz

4

Plik dump.hprof na Androida musi zostać przekonwertowany. Następnie możesz otworzyć convert-dump.hprof w MAT.

+0

Morrison - oohk .. Dzięki. Chyba zapomnę go przekonwertować .. Wypróbuję to i poznam .. –

+0

Dzięki @morrison .. przekonwertowany działa dobrze i ma wskaźniki wycieku pamięci .. –

3

Znalazłem this wideo bardzo przydatne. To mówi o tym, jak znaleźć wycieki pamięci z logcat (dzienniki zbieraczy śmieci) i jak korzystać z analizatora pamięci (MAT).

+0

Sujith .. dzięki .. Przeszedłem przez to wideo. - niesamowite wideo, aby uzyskać wiedzę na temat analizatora pamięci (MAT). –

1

@sujith The video jest bardzo dobry. Podsumowując, 1) wideo mówiło o bardzo trudnym do znalezienia wycieku przez "niestatyczną klasę wewnętrzną". Istnieje szczegółowe wyjaśnienie na ten temat w this page. 2) Mówił o kilku ważnych pojęciach, gdy używa się narzędzia do analizy pamięci, takiego jak płytkie sterty kontra zatrzymane sterty, GC Root i drzewo dominujące. 3) Pokazał przykład użycia MAT do identyfikacji wycieku. W MAT najbardziej użyteczne narzędzie przez niego powiedziane to Histogram i Drzewo Dominatora. Podczas dalszego badania obiektu używał menu "Ścieżka do Korzenia GC" prawym przyciskiem myszy, a następnie "Wyklucz słabe referencje".