美文网首页
不到60FPS者掉帧也?

不到60FPS者掉帧也?

作者: 郑超超很帅 | 来源:发表于2017-07-19 17:22 被阅读0次

        前几天跟前同事去海吃海喝,席间不免来套取我司知识宝库。为了吹牛逼必然各种夸夸其谈,其中说到一个很有趣的事情,说他们在做卡顿检测,说高通给做高大上的图像识别来识别卡顿。在耻笑完他们的愚蠢以后,然后慢慢地给介绍下掉帧的概念,超过16.7ms即为掉帧,掉几帧算卡顿你自己去定义。在他豁然开朗之余,还提出一个有趣的问题,就是说,既然这样,是不是可以用帧率来衡量卡顿呢?超过16.7ms就是掉帧,不到60帧一秒就是卡啊

我批评了他的愚蠢以后,回家却深深思考了良久。一来直觉告诉我这就是扯淡,二来居然一时之间想不出十足的反驳论据。于是就开始翻阅了下资料,终于勉强凑齐了想要的证据。

简单来说,是因为,帧率一般指的是变化帧的帧率。静止的界面帧率为0,但是并不能说这是掉帧

FPS的计算方法:

一般FPS计算的方法,都是使用adb shell dumpsys SurfaceFlinger --latency,获取最近127帧垂直同步时间(记为T2)。计算T2之间的时间差值,帧数除以时间差,得到帧率。

                               int(round((frame_count - 1) / seconds))

问题就是在于垂直同步的时间,怎么来的。

引用AndroidDeveloper的一个图,解释渲染的

渲染过程

CPU把要显示的东西转换成多边形、纹理,交给GPU。GPU去做栅格化,栅格化好了,再往下交给屏幕去显示。但是GPU不是笨蛋,它会把多边形和纹理保存在缓存里面,如果你给他的是相同的东西,那么它就什么不做。于是,这里就不会有一次交给屏幕的过程,这里的垂直同步时间就会延长。这里就是静止的情形,跟掉帧没有半毛钱关系。

好,应该就是这个道理,狡辩结束。

相关文章

  • 不到60FPS者掉帧也?

    前几天跟前同事去海吃海喝,席间不免来套取我司知识宝库。为了吹牛逼必然各种夸夸其谈,其中说到一个很有趣的事情...

  • Android界面性能优化必读

    目录 一. Android渲染知识 1.1 绘制原理1.2 掉帧1.3 为什么是60Fps?1.4 垃圾回收1.5...

  • UI优化

    Android系统每隔16ms发出信号,触发ui渲染,帧率60fps,人眼无法感知。渲染超过16ms就会出现掉帧现...

  • ui卡顿面试问题讲解

    一、UI卡顿原理 60fps ---> 16ms 60fps:60帧 16ms:Android每隔16ms发出信号...

  • iOS卡顿优化

    在iOS中是双缓冲机制(有前帧缓存、后帧缓存),配合垂直同步时钟(VSync信号)刷新屏幕的。按照60FPS的刷帧...

  • UIView的绘制原理及优化

    UI卡顿&掉帧的原因 一般页面滑动的帧数在60fps以内时,页面才会流畅,也就是说每一秒内有60次的画面更新,相当...

  • UI卡顿

    1、原理60fps -> 16ms (每秒60帧, 1000 / 60 = 16)overdraw (多层次U...

  • VSyne 相关的概念

    帧率 即 Frame Rate,单位 fps,是指 gpu 生成帧的速率,如 33 fps,60fps,越高越好。...

  • 为何失帧

    界面显示的原理 iOS设备通常是60fps(每秒60帧),也就是说两帧相隔的时间是1/60秒,大概16.7ms。在...

  • 何为失帧

    界面显示的原理 iOS设备通常是60fps(每秒60帧),也就是说两帧相隔的时间是1/60秒,大概16.7ms。在...

网友评论

      本文标题:不到60FPS者掉帧也?

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