dmtracedump
是一种用于从跟踪日志文件生成图形化调用堆栈图的工具。此工具使用 Graphviz Dot 实用程序创建图形化的输出,因此您必须先安装 Graphviz,才能运行 dmtracedump
。如果尚未生成跟踪日志并将其从连接的设备保存到本地计算机,请转到通过检测您的应用生成跟踪日志。
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 | 以此跟踪名称作为参数运行 diff |
-g outfile | 生成 outfile 输出 |
-s sortable | 可排序 JavaScript 文件所在位置的基址 |
-t percent | 在图表中包含子节点的最低阈值(子节点的包含时间显示为占父节点包含时间的百分比)。如果未使用此选项,默认阈值为 20%。 |
输出
图 1. dmtracedump 的屏幕截图
对于此图表中的每个节点,dmtracedump
都会显示以下信息:
ref callname (inc-ms, exc-ms,numcalls)
ref
- 跟踪日志中使用的调用引用号inc-ms
- 包含时长(在方法中花费的毫秒数,包括所有子方法)exc-ms
- 包含时长(在方法中花费的毫秒数,不包括任何子方法)numcalls
- 调用次数