利用pefertto分析trace方法【OHOS】

一、分析trace,计算帧率

1、进入Perfetto里,打开抓取到的trace文件,工具会自动解析文件

Perfetto地址

0

2、帧率的计算,可以用Render_service为标准计算:抓取到的trace的函数渲染必须为连续的,才可以准确的计算出帧率。如果不是连续的,则需要剔除。

如下图所示的帧率= 269 / 5 = 53.8

10s内的帧数:要尽量保持10秒内,渲染的充分,避免人为操作影响到帧数缺失太多。

0

3、测试过程中,由于人为因素误差较大,所以要尽可能多次测量,测量5次,提出明显偏差较大的数据,计算平均值。这样可以弥补掉认为操作的偶然性误差。

图中空白:1、可能是没有操作;2、可能出现卡顿;如果是没有操作的空白不需要计算在内,如果连续操作了因为卡顿出现空白,需要计算在内;

0

二、根据trace分析,找到调优方向:

1、抓trace,方法见上文;

2、打开分析工具,导入trace文件;(分析工具地址:2024071874448.ftrace (72 MB) - Perfetto UI

3、查看设备进程,找到测试的进程id,再在文中找到此进程id,查看三个进程数据;

注:

A、查看设备进程命令:ps -ef 或 ps -ef | grep 待过滤名称。

B、进程看你滑动的页面,例如桌面是launcher,设置里滑动测试的时settings;

0

4、分析三个数据:(将鼠标悬停在数据上,按住ctrl 同时滚动鼠标滚轮,可以对数据进行缩放)

以settings为例:

A、数据一: m.ohos.settings

打开第一个进程,对进程进行放大,然后点击该进程子项 m.ohos.settings 的第一个数据流(见图中箭头),然后看下方duration;

0

B、 数据二: RSRender Thread

打开第一个进程,对进程进行放大,然后点击该进程子项 RSRender Thread 的第一个数据流(见图中箭头),然后看下方duration;

0

C、进程三:render_service

打开第二个进程,对进程进行放大,然后点击该进程子项 render_service 的第一个数据流(见图中箭头),然后看下方duration;

0

5、发现问题:当三个数据的duration时间均小于 16ms时,设备帧率可达到60左右。

6、调优方向:分别对 m.ohos.settings、RSRender Thread、render_service 进行调优。

注:调优方向:应用层、系统层(去掉冗余日志、更换 vendor/lib64 库(ls /vendor/lib64 | grep display)等)

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值