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
— 调用次数