dmtracedump

dmtracedump 是一款可从跟踪日志文件生成图形化调用堆栈图的工具。该工具使用 Graphviz Dot 实用程序来创建图形输出,因此您需要在运行 dmtracedump 之前安装 Graphviz。如果您尚未生成跟踪日志并将其从连接的设备保存到本地计算机,请转到通过插桩应用生成跟踪日志

dmtracedump 工具将调用堆栈数据生成为树状图,其中每个节点代表一个方法调用。它使用箭头显示调用流(从父节点到子节点)。下图显示了 dmtracedump 的示例输出。

dmtracedump 工具包含在 Android SDK Tools 软件包中,位于 android-sdk/platform-tools/

语法

dmtracedump 的用法如下:

dmtracedump [-ho] [-s sortable] [-d trace-base-name] [-g outfile] trace-base-name

然后,该工具从 trace-base-name.datatrace-base-name.key 加载跟踪日志数据。

全局选项

全局选项 说明
-h 启用 HTML 输出
-o 转储跟踪文件而不是分析

命令和命令选项

命令和选项 说明
-d trace-base-name 与此跟踪名称进行差异比较
-g outfile 将输出生成到 outfile
-s sortable 可排序 JavaScript 文件位置的 URL 基础
-t percent 在图中包含子节点的最小阈值(子节点的包容性时间占父节点包容性时间的百分比)。如果未使用此选项,默认阈值为 20%。

输出

图 1. dmtracedump 屏幕截图

对于图中的每个节点,dmtracedump 显示以下信息:

ref callname (inc-ms, exc-ms,numcalls)
  • ref — 调用参考号,如跟踪日志中使用
  • inc-ms — 包容性耗时(方法中花费的毫秒数,包括所有子方法)
  • exc-ms — 独占性耗时(方法中花费的毫秒数,不包括任何子方法)
  • numcalls — 调用次数