SF & GFXInfo
RFPS
相对帧率
数据获取时间周期内 , (理论满帧-实际掉帧数)/ 数据获取间隔时间
GFXInfo
Stutter
卡顿率
卡顿比 。当发生 jank 的帧的累计时长与区间时长的比值 。
SF
Janky Count
普通卡顿次数
单帧绘制耗时大于 MOVIE_FRAME_TIME 时 , 计一次 janky 。
SF
Big Janky Count
严重卡顿次数
单帧绘制耗时大于 3*MOVIE_FRAME_TIME 时 , 计一次 big janky 。
SF
4. 如何优化卡顿4.1 常用的工具4.1.1 线上工具
释义
正式包慢函数
相对于灰度包 , 过滤了比较多监控 , 对性能损耗比较小 , 但是需要手动打开 , 单点反馈中不能保留反馈现场
灰度包慢函数
灰度上全量打开 , 针对版本间的数据对比和新增卡顿问题解决比较有效
ANR
ANR 的及时响应和处理
4.1.2 线下工具
备注
Systrace
暂不赘述
perfetto
加强版 systrace , 可定制 , 可以参考官方文档
Rhea
最常用也是最好用的工具 , 方便发现下下问题和归因 , 和 perfetto 一起使用绝配 , 感兴趣的同学可以移步 github 搜索 btrace
profiler
Androidstudio 自带工具 , 比较方便 , 但是数据准确度不高
sf / gfxinfo
主要用于脚本和工具
4.2 常用的思路
这里主要针对 UI 卡顿和 UI/流相互影响打来的卡顿 。对于 UI 卡顿来说 , 我们手握卡顿优化的 8 板大斧子 , 所向披靡:
- 下线代码;
- 减少执行次数;
- 异步;
- 打散;
- 预热;
- 复用;
- 方案优化;
- 硬件加速;
这里例举出一些常见的优化思路 , 注意这一定也不可能是全部 , 如果有其他好的优化思路 , 我们可以一起交流 。
4.3 一些做过的事儿4.3.1 解决 UI 卡顿引起的流卡顿直播对于 SurfaceView 的切换是一个长期的专项 , 分为多期逐步将 SurfaceView 在直播全量落地 , 场景覆盖秀场直播、聊天室、游戏直播、电商直播、媒体直播等 , 业务上对于渗透率和停留时长有比较显著的收益 , 同时功耗的收益也很可观 。
这里是一个权衡的问题 , SurfaceView 的兼容性问题 pk 带来的收益是否能打平 , 一般来说 , 越是复杂的业务场景 , 收益约大 。
4.3.2 解决 message 调度FWatchDog 是基于对 MessageQueue 的调度策略和同步屏障原理 , 以均帧耗时为阈值判定丢帧后主动在 MessageQueue 中插入同步屏障 , 保证渲染异步 message 和 doframe 的优先执行 , 达到一种渲染插帧的效果 , 同时具备 ANR 自动恢复同步屏障的能力 , 保障打散的有效 。
所以 FWatchDog 和打散是好的搭档 , 能产生 1+1 大于 2 的效果 。
4.3.3 减少执行次数一个典型的应用场景就是滑动场景的 GC 抑制 , 能够显著提高用户上下滑的使用体验 。这个场景相信每个业务都会存在 , 特别是存在大量遍历的逻辑 , 优化效果明显 。
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- 淘宝直播等多个平台账号已被封 淘宝直播被当录播封了
- 直播声卡入门知识 什么是直播声卡
- 快手怎么开通直播功能 快手直播怎么开
- 新手开直播多久能赚钱 美妆博主怎么赚钱
- 老王直播送iqoo8手机 iqoo7直播
- 加来众科AK8Pro数字直播声卡
- 新手如何从0开始做直播 直播间怎么开
- 读懂佳能相机的系列型号
- 搞耍是什么意思
- 网络电视看直播不清楚怎么回事 网络电视看直播为什么会卡