我使用./ Emulator -Trace配置文件-AVD Emulator_15启动了模拟器。然后,我将跟踪文件跟踪到〜/.android/avd/avd/rodgers_emulator_15.avd/traces/profile,其中有六个文件:qtrace.bb,qtrace.exc,qtrace.insn,qtrace.insn,qtrace.method,qtrace,qtrace.pid,qtrace,qtrace,qtrace,qtrace,qtrace,qtrace,qtrace,qtrace,qtrace,qtrace,qtrace,qtrace,qtrace,qtrace,qtrace,qtrace,qtrace,qtrace,qtrace,qtrace 。静止的。我无法弄清楚如何处理这些文件。我在所有文件上都尝试了DMTRAICACEDUMP和TRACEVIEW,但是似乎没有任何我可以使用任何输出。

如何查看本机方法在Android上拨打的时间的比例?

有帮助吗?

解决方案

您需要使用 tracedmdump 转换输出。这是定义的外壳函数 build/envsetup.sh 在完整的Android来源中。如果您使用的是SDK,而不是从完整的树上构建,我不确定这是否会起作用。

(如果您没有来源并想了解跟踪的函数,您可以看到它 这里.)

如果您使用过 emulator -trace profile, ,你会跑 tracedmdump profile. 。这将挖掘各种二进制文件以检索符号信息并将其与跟踪数据相关联,生成HTML摘要和与TraceView兼容的跟踪文件。

值得注意的是,VM在启用分析时将更慢地执行(解释器在每个方法调用和返回上都有开销,并且它在较慢的“调试”解释器中运行,而本机代码继续全速运行,因此您拥有得出结论时要小心。

一般评论:不要忘记使用F9或一种方法调用来开始/停止跟踪 - -trace 标志只能启用该功能。

其他提示

为了使用这六个文件,与dmtraceacump相同的目录中还有其他脚本,例如read_pid,read_trace,profile_trace等。你应该在包含六个文件的跟踪目录上首先运行post_trace,然后您可以使用任何一个他们获取个人资料信息,例如每个基本块执行的频率,它们属于的PID等。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top