前言
在[061]perfetto使用简介中,介绍了如何使用System Tracing的界面中来抓perfetto trace,这个方式的好处就是不需要连接电脑,可以离线抓取,但是perfetto有其他强大的功能,需要使用连接电脑才能发挥。
一、Record new trace
打开以下链接
代码语言:javascript
复制
https://ui.perfetto.dev/#!/record
简单理解,这个界面是用于可视化开启关闭perfetto的选项生成对应的指令。
二、Recording settings
首先是选择录制的设置,主要有三种模式,每种模式的作用不一样。
2.1 Stop when full
2.1.1 In-memory buffer size
代表每一个核上可以存储的最大的trace的buffer,在内存中,不会影响IO。
2.1.2 Max duration
设置此次trace抓取的最大时长,图中就是10s。
小结
Stop when full模式下,perfetto停止工作受Max duration和buffer size影响,一旦满足其中一个条件,perfetto将会停止。
优点:trace不会因为overwrite而导致丢失。
缺点:如果trace太多,会导致提前结束,无法录制到出现问题时候的trace。
一般10s,64mb也就够用了。
2.2 Ring buffer
可以看到选项和2.1 Stop when full一样,意思也是一样。Ring buffer模式只会收到Max duration的影响,时间到了就停止抓取trace,但是trace会有被overwrite的风险。
2.3 Long trace
用于长时间地抓取trace,但是由于需要定时将buffer中的trace写到文件里面去,会有IO的影响。前面两个选项和前两个模式的意思是一样的。
2.3.1 Max file size
代表生成long trace的最大文件大小,在使用perfetto,你需要评估一下可能生成的文件的大小,如果在你设置的Max duration期间,Max file size超了,会有异常bug产生,perfetto会停不下来来了。
2.3.2 Flush on disk every
间隔多少时间将buffer中的trace写入到文件中。这个数值不能太大也不能太小。