SurfaceFlinger进程信息
HW_VSYNC_ON_0代表Primary Display的VSync被enable或disable.
0这个数字代表的是display的编号, 0是Primary Display, 如果是External monitor, 就会是HW_VSYNC_ON_1.
当SF要求HWComposer将Display的VSync打开或关掉时, 这个event就会记录下来.
HW_VSYNC_0代表Primary Display的VSync发生时间点, 0代表display编号.
以下图为例, A, B, C, D分别代表VSync发生的时间, 这个event并没有记录VSync结束的时间,
所以, 不能把它解读为在A时间点VSync开始, 然后在B结束, C开始, D结束.
正确的解读是是A-B代表的是一个frame, A是VSync发生点, B是下一个VSync开始的时间.
如果refresh rate是60Hz的话, A-B, B-C, C-D的长度应该在16.6ms左右 (会有latency),
之所以有0与1的变化是为了让人比较容易读, 但有时候也会造成解读错误.
vsync高低值代表了vsync信号变化
Snipaste_2023-02-10_17-03-50.png
perfetto 搜索框sql
搜索框输入 :select slice_id,track_id,ts,dur,dur/1e6,name from slice WHERE name like '%HIDL::IGraphicBufferProducer::queueBuffer::client%'
查询语句,可以查询对应的接口耗时统计数据,生成表格,然后通过excel制作点图或者直方图
应用延迟统计
Snipaste_2023-02-10_15-44-20.png
kernel进程信息
pf_release_thread代表了present fence释放的信号
Snipaste_2023-02-10_17-35-46pf.png
关于实时perfetto trace
1.perfetto trace ui主页面有record new trace
2.add ADB device,通过web的方式链接设备adb
3.recording setting设置抓取buffer和抓取trace时间,默认是10s;
4.android apps & svcs 配置全部打开,其他配置酌情配置
网友评论