正如许多有用网站所详述的,分析Android应用程序内存使用情况的一种方法是执行"kill -10 [PID]"来触发HPROF转储.这似乎适用于某些设备,logcat通常包含以下内容:
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
Run Code Online (Sandbox Code Playgroud)
但是,在其他设备上,执行"kill -10"会导致:
I/dalvikvm( 5687): threadid=4: reacting to signal 10
I/dalvikvm( 5687): SIGUSR1 forcing GC (no HPROF)
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用的所有设备都是root用户,我确保将chmod/data/misc设置为777.执行"kill -10"后,我没有收到任何错误消息.
如果它有用,这里是我获得HPROF转储的设备:HTC ACE(Desire HD),HTC G1,HTC Nexus One(T-Mobile)
以下是我没有获得HPROF转储的设备:Nexus S,Droid,Droid X,Nexus One(AT&T)
为什么我不能从某些设备获得HPROF转储,是否有什么可以让我获得转储?
| 归档时间: |
|
| 查看次数: |
4072 次 |
| 最近记录: |