美文网首页
卡顿定义

卡顿定义

作者: superme_ | 来源:发表于2021-07-20 17:24 被阅读0次

微信开发者对于卡顿的定义,很简单,很清晰,很明了,这里就cv过来了,一定要仔细读对卡顿的定义

什么是卡顿,很多人能马上联系到的是帧率 FPS (每秒显示帧数)。那么多低的 FPS 才是卡顿呢?又或者低 FPS 真的就是卡顿吗?(以下 FPS 默认指平均帧率)

其实并非如此,举个例子,游戏玩家通常追求更流畅的游戏画面体验一般要达到 60FPS 以上,但我们平时看到的大部分电影或视频 FPS 其实不高,一般只有 25FPS ~ 30FPS,而实际上我们也没有觉得卡顿。

在人眼结构上看,当一组动作在 1 秒内有 12 次变化(即 12FPS),我们会认为这组动作是连贯的;而当大于 60FPS 时,人眼很难区分出来明显的变化,所以 60FPS 也一直作为业界衡量一个界面流畅程度的重要指标。一个稳定在 30FPS 的动画,我们不会认为是卡顿的,但一旦 FPS 很不稳定,人眼往往容易感知到。

FPS 低并不意味着卡顿发生,而卡顿发生 FPS 一定不高。FPS 可以衡量一个界面的流程性,但往往不能很直观的衡量卡顿的发生,这里有另一个指标(掉帧程度)可以更直观地衡量卡顿。

什么是掉帧(跳帧)?按照理想帧率 60FPS 这个指标,计算出平均每一帧的准备时间有 1000ms/60 = 16.6667ms,如果一帧的准备时间超出这个值,则认为发生掉帧,超出的时间越长,掉帧程度越严重。

假设每帧准备时间约 32ms,每次只掉一帧,那么 1 秒内实际只刷新 30 帧,即平均帧率只有 30FPS,但这时往往不会觉得是卡顿。反而如果出现某次严重掉帧(>300ms),那么这一次的变化,通常很容易感知到。所以界面的掉帧程度,往往可以更直观的反映出卡顿。

流畅性

综上所述,其实可以明白对于卡顿的定义,衡量流畅性的指标可以简单理解为:

在用户有操作的前提下平均掉帧率。只有在某一时刻发生的掉帧情况远远大于其他时刻,那么才界定为卡顿,这也是上面说到的界面的掉帧程度,才更直观的反映出卡顿

流畅指标,佳0,正常1,中等2,严重3,冻帧4

综上,就是Matrix中对页面流畅性分析的核心代码,而对于Matrix中精准命中堆栈则可以取自冻帧或者所谓的duration >= 200这个条件下dump一次主线程的堆栈来获取

慢函数

其实关于上述严重掉帧情况下的抓取堆栈的数量不多,同样避不开上面提到的漏掉其他耗时代码的情况,不过笔者认为这样的情况不会特别多,因为卡顿发生的时候,大概率避免不了正在执行一个耗时操作,那么这个耗时操作的堆栈出现在此刻dump出来的堆栈里面的可能性很大,所以Matrix干脆利落的出了一个慢函数检测。

这样感觉就无孔不入了,对所有在主线程上运行的函数耗时进行收集,和BlockCanary检测卡顿的策略一样,但是堆栈的抓取就要复杂一些,这也是为什么Matrix性能更好的原因,能在灰度下上线的能力。同时也能有对应的聚合策略,这样结合后端的能力方便我们分析代码运行情况,然后做 “狭义” 上的优化。

相关文章

  • 卡顿定义

    微信开发者对于卡顿的定义,很简单,很清晰,很明了,这里就cv过来了,一定要仔细读对卡顿的定义 什么是卡顿,很多人能...

  • APP&游戏需要关注Jank卡顿及卡顿率吗?

    导语 本次技术干货主要是讲解PerfDog卡顿Jank定义、原理、卡顿率(Stutter)定义及影响等,内容将分为...

  • 你平时开发会关注卡顿和卡顿率吗?

    本次技术干货主要是讲解PerfDog卡顿Jank定义、原理、卡顿率(Stutter)定义及影响等,内容将分为六部分...

  • Android性能优化-渲染及卡顿优化

    卡顿是如何造成的:卡主线程了如果是子线程卡顿,是不会对应用操作卡顿 1.内部引起的:自定义View代码2.外部引起...

  • 如何进行APP卡顿分析?

    1.如何定义发生了卡顿? 当出现 App的FPS平均值小于30,最小值小于24,说明安卓应用发生了卡顿。 2.卡顿...

  • Android高手笔记 - 卡顿优化

    如何定义发生了卡顿现象: 线下很难复现,与发生场景强相关(所以需要我们去做卡顿监控,收集现场信息) CPU相关知识...

  • (五)卡顿!卡顿!!卡顿!!!

    今天把3个Fragment的所有英雄头像加载之后,发现居然卡顿!而且还相当严重!!血崩。。。 原因排查: 图片放在...

  • 应用卡顿问题分析

    1.应用卡顿原理分析 卡顿问题的表现启动卡顿:启动白屏和启动动画卡顿运行卡顿:点击相应慢,列表滑动卡,动画卡顿 原...

  • 21-性能优化

    一、CPU和GPU 二、卡顿产生的原因和优化 卡顿优化-CPU 卡顿优化-GPU 卡顿监测 监控卡顿的demo:推...

  • Android性能优化-App卡顿

    目录 1.卡顿简介 2.检测Jank:介绍监测卡顿的方法 3.修复卡顿问题:介绍如何修复卡顿问题; 4.卡顿通常的...

网友评论

      本文标题:卡顿定义

      本文链接:https://www.haomeiwen.com/subject/zgdrmltx.html