dmtracedump

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

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

dmtracedump 工具包含在 Android SDK 工具包中,位于 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 - 调用次数