Openharmony性能分析之打电话拉起慢
#背景:通过联系人拨打电话调起UI界面完成时延为1911ms。测试用例:手机版本:开发者手机Openharmony4.1【预置条件】1.通过联系人拨打电话调起UI界面【测试步骤】1.打开辅助相机或者高速相机,并对准测试机开始录像2.启动APP,待界面稳定后退出APP,手动清理后台并重启手机3.重复步骤2࿰
·
#背景:通过联系人拨打电话调起UI界面完成时延为1911ms。
测试用例:
手机版本:开发者手机Openharmony4.1
【预置条件】
1.通过联系人拨打电话调起UI界面
【测试步骤】
1.打开辅助相机或者高速相机,并对准测试机开始录像
2.启动APP,待界面稳定后退出APP,手动清理后台并重启手机
3.重复步骤2,总计操作5次
4.将拍摄好的视频传到PC端
5.在PC端打开AVIDEMUX2,点击文件选择上传的拍摄视频,弹出视频后左下角选择帧编号模块
6.手动左右键播放计算起点帧数和终点帧数,通过时延公示算出完成时延
起点帧数:手指离开屏幕联系人拨号按键第一帧
终点帧数:通话页面完全加载完成通话读秒出现的第一帧
原因分析:
1. 分析Systrace,发现从联系人收到TP事件,到通话界面拉起,主要耗时点在callui加载耗时1.9s
2. 分析callui界面显示慢主要是主线加载binder耗时835ms
2.1 binder对端是audio_server
2.2 搜索查看audio相关操作,只发现一个文件导入audio包。
src/main/ets/common/utils/VibrationAndProximityUtils.ts
2.3 埋Systrace点,找到binder阻塞的代码
注意:Systrace请使用Openharmony的开源性能分析工具Smartperf_Host,进行打开,否则看不到自己在应用层埋的trace点。
修改方案:
1. 把比较耗时获取系统服务调用,放到子线程进行同步加载,避免阻塞主线加载界面。
2. 放到work子线程优化后,界面加载明显改善,由以前1.9s变成只要0.9s.
更多推荐
已为社区贡献13条内容
所有评论(0)