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.data
和 trace-base-name.key
加载跟踪日志数据。
全局选项
全局选项 | 描述 |
---|---|
-h |
启用 HTML 输出 |
-o |
转储跟踪文件而不是分析 |
命令和命令选项
命令和选项 | 描述 |
---|---|
-d trace-base-name |
与此跟踪名称进行差异比较 |
-g outfile |
将输出生成到 outfile |
-s sortable |
可排序 JavaScript 文件的位置的 URL 基地址 |
-t percent |
包含图形中子节点的最低阈值(子节点的包含时间占父节点包含时间的百分比)。如果未使用此选项,则默认阈值为 20%。 |
输出
对于图形中的每个节点,dmtracedump
会显示以下信息
ref callname (inc-ms, exc-ms,numcalls)
ref
- 调用引用号,如跟踪日志中所用inc-ms
- 包含的经过时间(在方法中花费的毫秒数,包括所有子方法)exc-ms
- 排他的经过时间(在方法中花费的毫秒数,不包括任何子方法)numcalls
- 调用次数