2013-04-12 18 views
10

Próbuję programowo analizować plik hprof. Używanie narzędzia hprof-conv w systemie android-sdk Wygenerowałem kilka plików com.your.package.index.parsować migawkę pamięci plików indeksowych hprof programowo

W jaki sposób programowo analizować te pliki .index?

Chcę przeprowadzić niestandardową analizę drzewa dominującego, co jest łatwe do zrobienia za pomocą MAT (Eclipse's Memory Analyzer), ale chcę zrobić to w sposób zautomatyzowany.

+3

Dla tych, napotykając na to pytanie, jest tu op wcześniejszych pytanie jako tło: http://stackoverflow.com/questions/15977723/analyze-a-hprof-memory-dump-file-from-command-line-programmically – CommonsWare

+0

Hackowanie [źródła wtyczki Mat] (http://dev.eclipse.org/svnroot/tools/org.eclipse. mat/trunk/plugins/org.eclipse.mat.hprof/src/org/eclipse/mat/hprof /) w opcji dla ciebie? Przejrzałem źródło i nie widziałem żadnego drzewa "Dominator"? –

+0

@hack_on [Nie jestem pewien, czy wyglądasz wystarczająco mocno] (http://dev.eclipse.org/svnroot/tools/org.eclipse.mat/trunk/plugins/org.eclipse.mat.parser/src/org /eclipse/mat/parser/internal/DominatorTree.java). To nie wygląda tak strasznie, jak to tylko możliwe. [SnapshotImpl] (http://dev.eclipse.org/svnroot/tools/org.eclipse.mat/trunk/plugins/org.eclipse.mat.parser/src/org/eclipse/mat/parser/internal/SnapshotImpl .java) jako dane wejściowe wygląda tak, że plik został wczytany. – blahdiblah

Odpowiedz

1

Możesz spróbować użyć MAT z linii poleceń i wygenerować własne raporty (drzewo dominujące). W tym przypadku można filtrować za pomocą kodu XML, który może być użyty do wygenerowania raportu lub przeanalizować raport za pomocą zewnętrznego kodu.

Patrz: http://www.eclipse.org/forums/index.php/t/489594/

Powyższy link powinien poprowadzić Cię przez tego zadania ...

+1

proszę wspomnieć, że jak to będzie analizować automatycznie za pomocą tego narzędzia. – Hamad

+1

Istnieje kilka sposobów, aby to zrobić, możesz obejrzeć katalog hprof za pomocą monitorów plików w java 7 NIO i wywołać MAT za pomocą powyższego komentarza. Aby zobaczyć wygląd kodu monitorowania folderu: http://javapapers.com/core-java/monitor-a-folder-using-java/ –