dmtracedump
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
- 调用次数
转载自:https://developer.android.com/studio/command-line/dmtracedump?hl=zh-cn