首页 > 自考资讯 > 自考资讯

使用手机浏览网页或玩游戏时出现口吃?一篇文章解释了卡顿滞后和滞后率的定义和影响

2024-10-09

大家好,今天来为大家解答使用手机浏览网页或玩游戏时出现口吃?一篇文章解释了卡顿滞后和滞后率的定义和影响这个问题的一些问题点,包括也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

简介这篇技术文章主要讲解了PerfDog Stutter Jank的定义和原理、Stutter rates的定义和影响等。内容会分为六个部分,FrameTime、FPS、流畅度、Jank(口吃次数)、Stutter Rate(口吃)、冲击等深入剖析这六部分在性能测试工作中的重要作用

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期间没有新的渲染画面刷新,则认为是一次潜在的卡顿,也就是说,下一帧如果花费了前三帧平均帧时间的2倍以上,就被认为是潜在的滞后。同时,如果单帧时间大于电影帧时间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和滞后率。只需要区分使用场景即可,例如:

静态页面窗口只需要关注FPS即可。理论上FPS应该为0,否则就意味着存在冗余刷新,很容易导致手机发热、耗电。

用户评论

╭摇划花蜜的午后

我一直以为卡顿就是画面卡着一点就够了,没想到还有这个深层次的解释!看你的分析后我才发现我以前对"卡顿率"的概念理解的不全面。希望以后文章能讲讲如何解决Jank问题!

    有17位网友表示赞同!

栀蓝

终于有人正视手机玩游戏卡顿的问题了!这种体验真的讓人很糟,简直是“爱恨”交织!希望厂商赶紧改进硬件和软件,给玩家带来丝滑的体验!

    有20位网友表示赞同!

折木

我平时就是冲着玩游戏的频率买新款手机,结果还是时不时会遇到卡顿的情况,真是有点败兴呀!这个文章讲解得很清晰,让我更加清楚了解卡顿的机制。

    有13位网友表示赞同!

情深至命

作为一个游戏玩家和程序员,我对Jank概念非常感兴趣!你说的影响简直太对了,尤其是一些需要快速反应的游戏,少しでも延迟就可能导致失败。希望厂商能多关注这个问题,优化系统的流畅度!

    有5位网友表示赞同!

百合的盛世恋

每次玩视频或者游戏的时候遇到卡顿,我就感觉整个世界都慢了下来一样!你的文章让我明白这个叫做Jank的卡顿,还真是个麻烦事。希望以后可以了解更多解决的方法啊。

    有6位网友表示赞同!

冷眼旁观i

看了这段内容后我终于明白了为什么某些手机虽然CPU配置很高,但是运行起来还会卡顿!我自己的手机就是这种情况,真是太无奈了,看来不止硬件问题吧!?

    有16位网友表示赞同!

陌然淺笑

说实话,我对卡顿这个问题一直很困扰。你的文章解释的很清楚,让我了解了卡顿率的概念和影响范围。希望以后的文章能分享一些解决这些问题的建议!

    有9位网友表示赞同!

限量版女汉子

玩游戏的时候遇到卡顿,感觉像一场噩梦一样! 你的文章让我明白这不是单方面的硬件问题,软件优化也有很大责任啊!希望能看到更多开发人员关注这个问题的解决方案。

    有15位网友表示赞同!

歇火

我一直以为卡顿就是手机运行太慢,看了你的分析才发现原来还有这么多细致的分类和影响机制!真是涨姿势了,希望以后能再学习一些缓解卡顿的方法。

    有6位网友表示赞同!

花海

我的手机经常会玩游戏时出现卡顿的情况,尤其是玩大型MOBA游戏的时候,简直体验极差!你说的Jank这个概念真的很有代表性,因为这确实会影响玩家的游戏体验。希望能找到解决方法

    有5位网友表示赞同!

迷路的男人

文章写的不错,虽然是我本人对这款设备不是很了解,但还是能从你的描述中了解到一些卡顿机制的复杂性和对游戏体验的影响!

    有17位网友表示赞同!

巷陌繁花丶

我之前一直以为卡顿就是硬件的问题,看完你的文章才明白原来还有卡顿率这种概念!以后换手柄的时候也要注意这个指标了,谢谢分享!

    有15位网友表示赞同!

安陌醉生

说实话,我觉得你说的影响范围有些夸张。玩游戏偶尔出现一小段卡顿也完全不影响我的体验。 我更在意的是手机整体的流畅度和电池续航能力。

    有5位网友表示赞同!

留我一人

文章写的非常专业,讲解的也很细致!对了解卡顿问题很有帮助!希望以后能有更多深入的技术分析,例如不同硬件配置对Jank的影响等等。

    有6位网友表示赞同!

风中摇曳着长发

我最近入手了一款新手机,可是玩游戏的时候经常会遇到闪退和卡顿的问题。真是让人非常头疼!你的文章让我明白这不是个别情况,可能是软件或者系统配置的问题!我希望厂家能尽快出解决方案!

    有10位网友表示赞同!

ー半忧伤

我觉得你关于卡顿影响的描述有些夸张了。每个人对卡顿忍受度的要求不同,有些人可能更加注重游戏的画面表现,而忽略一些轻微的卡顿情况。

    有7位网友表示赞同!

猜你喜欢