2011-04-12 14 views
5

Jak zostało opisane w wielu pomocnych witrynach, jednym ze sposobów analizy wykorzystania pamięci przez aplikacje na Androida jest wykonanie "kill -10 [PID]", aby uruchomić zrzut HPROF. To wydaje się działać na niektórych urządzeniach, a logcat zawiera zwykle coś takiego:Dlaczego nie mogę uzyskać zrzutów HPROF z niektórych urządzeń?

I/dalvikvm(32170): threadid=3: reacting to signal 10 
I/dalvikvm(32170): SIGUSR1 forcing GC and HPROF dump 
I/dalvikvm(32170): hprof: dumping VM heap to "/data/misc/heap-dump-tm1302633572-pid32170.hprof-hptemp". 
I/dalvikvm(32170): hprof: dumping heap strings to "/data/misc/heap-dump-tm1302633572- pid32170.hprof". 
I/dalvikvm(32170): hprof: heap dump completed, temp file removed 

jednak od innych urządzeń, realizując „kill -10” Wyniki w tym:

I/dalvikvm(5687): threadid=4: reacting to signal 10 
I/dalvikvm(5687): SIGUSR1 forcing GC (no HPROF) 

Wszystko Urządzenia, na których próbuję to, są zrootowane i upewniłem się, że chmod/data/misc do 777. Nie otrzymuję żadnych komunikatów o błędach po wykonaniu "kill -10".

W przypadku jest to pomocne, są tu urządzenia, gdzie ja rozumiem zrzutu HPROF: HTC Ace (Desire HD), HTC G1, HTC Nexus One (T-Mobile)

I tu są urządzenia, na których nie rozumiem zrzutu HPROF: Nexus S, Droid, Droid X, Nexus One (AT & T)

Dlaczego nie mogę uzyskać zrzut HPROF z niektórych urządzeń i tam jest coś, co mogę zrobić, aby umożliwić mnie zdobyć wysypiska?

Odpowiedz

8

Użyj DDMS. Kliknij na ikonę "Dump HPROF File" - wygląda jak półpełna puszka ze strzałką skierowaną w dół. Pracowałem jak prawdziwy urok, kiedy wypróbowałem go właśnie teraz na Nexusie S.

+0

Dobrze, dziękuję. Wygląda na to, że to także oszczędza mi konieczności przekonwertowania go za pomocą hprof-conv. –

+0

Oto diff, który wyłączył funkcję: http://android.git.kernel.org/?p=platform/dalvik.git;a=commitdiff;h=b037a464512c0721bdca969ae19cce3d4b17b083 –

+1

Aby być czystym dla przyszłych czytelników, funkcja @ Jan Odniesieniem Berkel jest SIGUSR1 wymuszający zrzut HPROF, z którego korzystał OP. Podejście DDMP HPROF nadal działa AFAIK. – CommonsWare