4

我运行以下 Android Monkey 命令:

adb shell monkey --hprof -v -p com.my.app 5000

它应该在 /data/misc 下创建一个 hprof 文件,但它没有。我修改了 777 /data/misc。

然后我尝试了 kill -10 APP_PID,但在 logcat 下得到了以下内容:

I/dalvikvm(  771): threadid=4: reacting to signal 10
I/dalvikvm(  771): SIGUSR1 forcing GC (no HPROF)
D/dalvikvm(  771): GC_EXPLICIT freed 46K, 38% free 8352K/13383K, external 15387K/15496K, paused 98ms

我在 Galaxy S 上运行 Cyanogenmod 版本 7、Android 版本 2.3.7。

为什么有“没有 HPROF”,我如何通过 Monkey 获得 HPROF 转储并杀死 -10?

谢谢

4

1 回答 1

3

当使用 Monkey 调用时,会向所有进程--hprof发送SIGUSR1信号,但此补丁已从 Dalvik 禁用了转储 HPROF 数据:

提交 b037a464512c0721bdca969ae19cce3d4b17b083 作者:Andy McFadden 日期:Fri Jul 16 11:07:58 2010 -0700

Don't do heap dump on SIGUSR1.

We still do the GC, but without the HPROF heap dump.

Change-Id: I004a65b9571667dd320dfabec1441d0fc8b9970a

因此,SIGUSR1仅调用 GC。我想--hprof应该必须从猴子中删除该选项。

于 2011-12-08T15:54:30.080 回答