本篇文章给大家谈谈使用手机浏览网页或玩游戏时出现口吃?一篇文章解释了卡顿滞后和滞后率的定义和影响,以及对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
FrameTime定义:两帧之间所花费的时间(也可以简单认为是渲染单帧所花费的时间)
从图中可以看出,图中B帧的GPU渲染时间(帧生成时间)大于显示器刷新间隔,占用了两个显示器刷新时间。也就是说,屏幕没有刷新过一次。当多次没有屏幕刷新(即屏幕没有变化)时,可能会卡顿。
注1:。。。用户真正看到的是新屏幕的刷新间隔,而不是eglSwapbuffers-GPU渲染完成的间隔(不提交屏幕显示)。因此,后面提到的Frametime指的是屏幕Display-Frametime。
注2:PerfDog统计的FPS和Frametime是用户看到的新屏幕Display的真实刷新FPS和帧时间。
FPS定义(FPS:平均1秒屏幕刷新次数)平均帧率(传统FPS,平均1秒屏幕刷新次数)瞬时帧率(单帧需要FrameTime来计算实时FPS,每帧刷新的真实帧率) -时间帧率由耗时换算而来)图片渲染流程图如下,每帧FrameTime。
PerfDog统计帧率和FrameTime如下:
游戏和APP的区别在于强制刷新DirtyRedraw机制。脏区重绘iOS 苹果WDDC 第18 届开发者大会FramePacing 例如下面两个游戏画面。左边的尝试跑到60帧,实际只能达到40帧;右边继续稳定在30。帧数运行:
上图左边的帧率很高,但是好像卡住了。这是由微口吃引起的。左侧的FrameTime如下图:
从FrameTime可以看出,左边高帧率FPS=40中出现了一次FrameTim=117ms,理论平均FrameTime=25ms。因此,在非均匀渲染的情况下,虽然帧率高达40,但仍然感觉非常卡顿。
右侧以30帧低帧率运行FrameTime如下图:
从上面的FrameTime可以看出,帧率FPS=30,FrameTime平均为33ms,画面会非常流畅。
总结:帧率高不一定流畅。
Android Android 4.4流畅度机制- Butter Project (Jank) Google Jank计算思路:考虑视觉惯性,基于硬件vsync时间间隔,如果连续一个vsync没有新的屏幕刷新,则认为是卡顿,意思是下一个vsync时间如果没有新的屏幕刷新,则认为是Jank。
流畅度
视觉惯性和视觉预期帧速率。用户下意识地认为下一帧也应该以当前帧率刷新,例如60帧。用户下意识地认为下一帧也应该是60。帧率刷新已经是25帧了。用户下意识地认为下一帧也应该在25帧刷新。如果刷新率为25帧,就会从60帧跳到25帧,扰乱用户的视觉惯性。
影片帧影片帧率(18-24),通常为24帧。单个电影帧所花费的时间为:1000ms/24=40ms。电影帧速率是一个关键点。低于这个帧率,人眼基本可以感知到画面中的不连续性。
PerfDog-JankPerfDog Jank计算思路:考虑视觉惯性,假设前三帧的平均帧时间为参考,作为vsync时间间隔,如果连续两次vsync期间没有新的渲染画面刷新,则认为是一次潜在的卡顿,也就是说,下一帧如果花费了前三帧平均帧时间的两倍以上,就被认为是潜在的滞后。同时,如果单帧时间大于电影帧时间1000ms/24*2的两倍(因为人眼只能辨别24帧以下的画面不连续性),则认为是真正的卡顿。同时,如果单帧耗时超过电影帧时间的3倍,则视为严重卡顿。
注意:为什么垂直同步两次? GPU一般有3个缓冲区。当前帧已经占用了1 个缓冲区,这意味着还剩下2 个缓冲区。人眼一般可以容忍2帧的延迟。
为什么需要两个电影帧? 24帧以下,人眼可以感知到画面的不连续性。电影一般都是24帧。即一帧电影帧耗时1000ms/24=41.67ms,两帧电影帧耗时41.67ms*2,三帧电影帧耗时41.67ms*3。
PerfDog Jank计算方法:
如果两个条件同时满足,则认为是Jank。
前三帧的显示帧时间平均要长2 倍。
Display FrameTime 需要两个电影帧(1000ms/24*2=84ms)。
如果两个条件同时满足,则认为BigJank严重卡住。
Display FrameTime 前三帧平均花费2次。
Display FrameTime 需要三个电影帧(1000ms/24*3=125ms)。
Google-Jank如图所示:
PerfDog-Jank如图所示:
真实测试FrameTime计算Jank,如下图
PerfDog-Jank如图所示:
注意:低帧率并不意味着冻结。如果帧率只有几帧,还有什么好说的卡顿呢?
目前主流游戏与Jank(10分钟卡顿数)的对比如下:
PerfDog-网络平台
PerfDog-Stutter(口吃率) PerfDog Stutter 定义:测试过程中出现口吃时间的比例。即口吃(口吃率)=口吃时长/总时长
PerfDog Stutter计算思路:基于PerfDog Jank,一旦Jank卡住,就会出现Jank时间。测试过程中可能会出现多次Jank卡顿,即多次Jank次数。总测试持续时间为时间。
卡顿(卡顿率)=Jank时间/时间
注:Jank 是滞后数,Stutter 是滞后率。 Jank和Stutter的趋势是一致的,但并不完全线性,因为Jank滞后的严重程度每次都不同。同时也说明,如果没有Jank卡顿,卡顿率自然就是0。
目前主流游戏对比如下:
您是否需要关注FPS、Jank 和延迟率来影响游戏?游戏流畅度对用户体验的影响最大,所以需要重点关注FPS、Jank和滞后率。
注意:比如游戏中预测的延迟造成的延迟,比如新的UI弹出等,都可以认为是干扰,需要消除。它不应该被算作Jank。您可以通过右键单击网络云上的框来删除干扰数据。
APP是否需要关注FPS、Jank和滞后率? APP还需要关注FPS、Jank和滞后率。只需要区分使用场景即可,例如:
标题:使用手机浏览网页或玩游戏时出现口吃?一篇文章解释了卡顿滞后和滞后率的定义和影响
链接:https://www.313yx.com//news/sypc/179164.html
版权:文章转载自网络,如有侵权,请联系删除!
用户评论
这篇文章真的太棒了!我一直不明白为什么我的手机有时会卡顿,现在终于找到答案了。原来是卡顿滞后和滞后率在作怪!学习了!
有14位网友表示赞同!
感觉文章有点过于专业了,卡顿滞后和滞后率这些名词对于普通用户来说不太友好,可能要加入一些通俗易懂的解释和案例,这样更容易理解。
有20位网友表示赞同!
手机卡顿真是太令人头疼了,特别是玩游戏的时候!希望这篇文章能帮助我找到解决方法,让我摆脱卡顿的困扰!
有11位网友表示赞同!
文章中提到的卡顿滞后和滞后率确实影响着手机的流畅度,看来我应该关注一下手机的性能指标了。
有13位网友表示赞同!
感觉这篇文章有点像是在科普,不过我还是学到了不少东西,比如什么是卡顿滞后和滞后率,以及它们对手机的影响。
有6位网友表示赞同!
太感谢作者了,这篇文章让我终于明白了手机卡顿的原理,以后遇到这种情况就知道怎么处理了!
有6位网友表示赞同!
文章内容很专业,但有些内容对于非专业人士来说可能难以理解。希望作者能提供一些更易懂的解释,或者举一些生活中的例子来帮助理解。
有7位网友表示赞同!
文章写的挺好的,但是感觉内容有点散,没有一个明确的逻辑线,建议作者可以梳理一下文章结构。
有5位网友表示赞同!
手机卡顿真是让人抓狂,文章中提到的卡顿滞后和滞后率让我对手机卡顿有了更深的了解,希望能找到解决方法。
有19位网友表示赞同!
这篇文章确实解释了卡顿滞后和滞后率的定义,但是没有给出具体解决卡顿问题的方法,感觉有点意犹未尽。
有14位网友表示赞同!
以前一直以为手机卡顿只是单纯的性能问题,现在才知道还有卡顿滞后和滞后率的影响,真是涨姿势了!
有20位网友表示赞同!
文章的语言过于学术化,缺乏趣味性,建议作者可以尝试用更生动的语言来描述,提高文章的可读性。
有9位网友表示赞同!
文章中提到的卡顿滞后和滞后率对手机性能的影响很大,希望作者能分享一些提高手机性能的技巧。
有7位网友表示赞同!
手机卡顿确实影响用户体验,文章中提到的卡顿滞后和滞后率是导致卡顿的重要原因之一,希望作者能提供一些解决方案。
有11位网友表示赞同!
感觉这篇文章有点像是在推销手机性能指标,建议作者可以加入一些更贴近用户实际需求的内容,例如如何选择性能更好的手机。
有18位网友表示赞同!
文章内容比较干涩,缺乏例子和图片,建议作者可以加入一些案例和图片,提高文章的趣味性和可读性。
有20位网友表示赞同!
这篇文章让我对手机卡顿有了更深的理解,但感觉没有提供具体的解决方案,希望作者能分享一些解决卡顿问题的技巧。
有5位网友表示赞同!
文章中提到的卡顿滞后和滞后率对手机性能的影响不容忽视,希望作者能提供一些测试和优化手机性能的方法。
有6位网友表示赞同!
感觉这篇文章有点偏向技术层面,建议作者可以加入一些生活化的内容,例如如何避免手机卡顿等。
有12位网友表示赞同!
手机卡顿问题确实让人头疼,这篇文章让我对手机卡顿的原理有了更深的了解,希望作者能分享一些解决卡顿的实用技巧。
有19位网友表示赞同!