btrace 使用方式

747 阅读1分钟
  1. 按官方文档github.com/bytedance/b…

  2. 下载:oss.sonatype.org/service/loc…

  3. adb连接手机,编译APP完成后,输入以下命令

java -jar rhea-trace-shell.jar -a ${your app package name} -t 10 -o output.pb -r rhea.all sched -fullClassName

例如:

每次重启

java -Xmx4096m -jar /Users/xxx/Desktop/rhea-trace-processor-2.0.0.jar -a com.xxx.xxx -t 10 -o /Users/xxx/Desktop/trace/output.pb sched -fullClassName -mainThreadOnly -r

不重启

java -Xmx4096m -jar /Users/xxx/Desktop/rhea-trace-processor-2.0.0.jar -a com.xxx.xxx -t 10 -o /Users/xxx/Desktop/trace/output.pb sched -fullClassName -mainThreadOnly

  • java -Xmx4096m是为了解决生成pb文件时OOM

  • 生成trace 产物,使用ui.perfetto.dev/ 即可打开分析

可选参数

参数

默认值

说明

-o $outputPath

当前时间.pb

指定产物 trace 保存路径,默认值会根据时间戳自动生成

-t $timeInSecond

5

指定这次采集的时长,单位是秒

-mode $mode

根据设备而定

指定采集 Trace 的模式,目前支持两种模式:perfetto: 8.1 及以上系统默认模式,可以采集到您的应用函数执行 trace 以及系统 atrace 和 ftrace;simple: 8.1 以下系统默认模式,可以采集到您的应用函数执行 trace 以及系统 atrace

-maxAppTraceBufferSize $size

500000000

采集 Trace 时的 buffer 大小,单位是字节,一般而言,您不需要配置此参数,除非您遇到下面类似的提醒:MaxAppTraceBufferSize is too small. Expected 100515704 Actual 100000000. Add -maxAppTraceBufferSize 100515704 to your command注意:maxAppTraceBufferSize 仅在 App 启动后的首次 trace 时生效

-threshold $ns

0

采集函数耗时阈值,单位纳秒。采集时长较长时该参数可减小产物体积

-s $serial

指定 adb 连接的设备

-mainThreadOnly

仅采集主线程 trace

-r

自动重启以抓取启动过程的 trace

-fullClassName

trace 信息默认是不包含包名的,此参数可开启包名

rhea.binder

开启 binder 信息增强

rhea.render

开启渲染监控能力

rhea.io

开启 IO 监控能力

rhea.thread

开启线程创建监控能力

rhea.block

开启 park/unpark/wait/notify 监控功能

rhea.all

开启上述所有 RheaTrace 增强的监控能力

-debug

打印调试日志

--list

查看设备支持的 category 列表