- 内存:内存的吃紧会直接导致 GC 的增加甚至 ANR,是造成卡顿的一个不可忽视的因素;
- CPU:CPU 对卡顿的影响主要在于线程调度慢、任务执行的慢和资源竞争,比如降频会直接导致应用卡顿;
- GPU:GPU 的影响见渲染流程,但是其实还会间接影响到功耗和发热;
- 功耗/发热:功耗和发热一般是不分家的,高功耗会引起高发热,进而会引起系统保护,比如降频、热缓解等,间接的导致卡顿 。
3. 如何评价卡顿3.1 线上指标
释义
计算方式
数据来源
FPS
帧率
取 vsync 到来的时间为起点,doFrame 执行完成的事件为终点,作为每帧的渲染耗时,同时利用渲染耗时/刷新率可以得出每次渲染的丢帧数 。平均 FPS = 一段时间内渲染帧的个数 * 60 / (渲染帧个数 + 丢帧个数)
vsync
stall_video_ui_rate
总卡顿率
(UI 卡顿时长 + 流卡顿时长) / 采集时长
vsync
stall_ui_rate
UI 卡顿率
UI 卡顿时长 / 采集时长
vsync
stall_video_rate
流卡顿率
流卡顿时长 / 采集时长
vsync
stall_ui_slight_rate
轻微卡顿率
帧丢帧时长 / 采集时长
vsync
stall_ui_moderate_rate
中等卡顿率
帧丢帧时长 / 采集时长
vsync
stall_ui_serious_rate
严重卡顿率
帧丢帧时长 / 采集时长
vsync
3.2 线下指标
Diggo 是字节自研的一个开放的开发调试工具平台,是一个集「评价、分析、调试」为一体的,一站式工具平台 。内置性能测评、界面分析、卡顿分析、内存分析、崩溃分析、即时调试等基础分析能力,可为产品开发阶段提供强大助力 。
释义
计算方式
数据来源
FPS
时机渲染帧率
数据获取时间周期内,实际渲染帧数/ 数据获取间隔时间
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
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- 北京冬奥会开幕式直播在哪里看
- 主播直播拼多多砍价拿手机 拼多多上砍价拿手机
- 让直播小白变身直播大咖 如何从小白变成主播
- 童年女神舒畅直播稳居直播榜榜首,人气丝毫不输巅峰时期的她
- 国庆直播盘点 国庆的直播
- 挽回前男友攻略:如何读懂他的心
- 读懂B超单验证胎儿是男是女 b超有两点基本是男孩
- 苹果手机投屏电脑直播教程 怎么将iphone投屏到电脑
- 聊聊直播行业中 直播行业
- 明星直播带货的风口已过 直播带货是风口