首页
/
每日頭條
/
科技
/
玩遊戲卡頓真的是高手被針對嗎
玩遊戲卡頓真的是高手被針對嗎
更新时间:2025-06-28 19:02:59
  • 導語

本次技術幹貨主要是講解PerfDog卡頓Jank定義、原理、卡頓率(Stutter)定義及影響等,内容将分為六部分,FrameTime、FPS、流暢度、Jank(卡頓次數)、卡頓率(Stutter)、影響等。從深層次分析在性能測試工作中這六部分起到的重要作用

  • FrameTime
    • 定義:兩幀畫面間隔耗時(也可簡單認為單幀渲染耗時)

玩遊戲卡頓真的是高手被針對嗎(刷手機或玩遊戲時卡頓)1

從圖中可看出畫面中B幀在GPU渲染耗時(幀生成時間)大于顯示器刷新間隔,占用兩次顯示器刷新耗時。也就是說有一次畫面沒刷新。當出現多次沒有畫面刷新(也就是說畫面沒變化),則可能是一次卡頓。

說明1:玩家用戶真正看到的是屏幕新畫面刷新間隔時間,而不是eglSwapbuffers-GPU渲染完成(并沒有提交屏幕顯示)間隔時間。所以後面所提到Frametime統統指的是屏幕Display-Frametime

說明2:PerfDog統計的FPS和Frametime都是用戶看到的屏幕Display新畫面真實刷新FPS和幀耗時

  • FPS
    • 定義(FPS:1秒内平均畫面刷新次數)
      • 平均幀率(傳統常說的FPS,1秒内平均畫面刷新次數)
      • 瞬時幀率(單幀耗時FrameTime算出來實時FPS,每一幀畫面刷新耗時換算出的實時幀率)

畫面渲染流程圖如下,每一幀FrameTime。

玩遊戲卡頓真的是高手被針對嗎(刷手機或玩遊戲時卡頓)2

PerfDog統計幀率及FrameTime如下圖:

玩遊戲卡頓真的是高手被針對嗎(刷手機或玩遊戲時卡頓)3

    • 遊戲與APP區别
      • 強制刷新
      • DirtyRedraw機制
      • 髒區重繪
  • iOS
    • 蘋果WDDC18年開發者大會
      • FramePacing

比如下面兩個遊戲畫面,左邊的試圖以60幀運行,但實際隻能達到40幀;右邊的則持續穩定在30幀運行:

玩遊戲卡頓真的是高手被針對嗎(刷手機或玩遊戲時卡頓)4

上圖左邊幀率高,反而看起來有一卡一頓的現象,這就是Micro Stuttering(微型口吃)導緻的,左邊FrameTime如下圖:

通過FrameTime可以看出,左邊高幀率FPS=40幀率中出現一次FrameTim>=117ms,理論平均FrameTime=25ms。所以非均勻渲染,雖然幀率高達40,但依然覺得非常卡。

右邊低幀率30幀運行FrameTime如下圖:

玩遊戲卡頓真的是高手被針對嗎(刷手機或玩遊戲時卡頓)5

從上面FrameTime可以看出,幀率FPS=30,FrameTime均勻為33ms,畫面會非常平滑。

總結:幀率高,未必流暢。

  • Android
    • Android4.4
      • 流暢度機制-黃油計劃(Jank)

Google Jank 計算思路:考慮視覺慣性,以硬件vsync時間間隔,連續1次vsync沒有新畫面刷新,則認為是一次卡頓,也就是說下一次vsync時間點沒有新畫面刷新,則認為是一次Jank。

玩遊戲卡頓真的是高手被針對嗎(刷手機或玩遊戲時卡頓)6

  • 流暢度

玩遊戲卡頓真的是高手被針對嗎(刷手機或玩遊戲時卡頓)7

    • 視覺慣性

視覺預期幀率,用戶潛意識裡認為下幀也應該是當前幀率刷新比如一直60幀,用戶潛意識裡認為下幀也應該是60幀率刷新一直25幀,用戶潛意識裡認為下幀也應該是25幀率刷新如果是60幀一下跳變為25幀,擾亂用戶視覺慣性。

    • 電影幀

電影幀率(18-24),一般是24幀。電影幀單幀耗時:1000ms/24=40ms。電影幀率是一個臨界點。低于這個幀率,人眼基本能感覺畫面不連續性

  • PerfDog-Jank

PerfDog Jank 計算思路:考慮視覺慣性,假設以前三幀的平均幀耗時為參考,作為vsync時間間隔,連續兩次vsync沒有新渲染畫面刷新,則認為是一次潛在卡頓,也就是說下一幀耗時大于前三幀平均幀耗時2倍,則認為一次潛在卡頓。同時單幀耗時滿足大于兩倍電影幀耗時1000ms/24*2 (由于人眼低于24幀才能辨别畫面不連續性),則認為是一次真正卡頓。同時若單幀耗時大于3倍電影幀耗時,則認為是一次嚴重卡頓。

注解:為什麼是兩次vsync?GPU一般是3緩沖buffer,當前幀已占用一個buffer,即剩餘2緩沖buffer,人眼一般可容忍2幀延遲。

為什麼是兩幀電影幀耗時?低于24幀畫面,人眼就能感知到畫面不連續性,電影一般都是24幀。即電影幀耗時1000ms/24=41.67ms,兩幀電影幀耗時也就是41.67ms*2,三幀電影幀耗時是41.67ms*3。

PerfDog Jank計算方法:

同時滿足兩條件,則認為是一次卡頓Jank.

Display FrameTime>前三幀平均耗時2倍。

Display FrameTime>兩幀電影幀耗時(1000ms/24*2=84ms)。

同時滿足兩條件,則認為是一次嚴重卡頓BigJank.

Display FrameTime >前三幀平均耗時2倍。

Display FrameTime >三幀電影幀耗時(1000ms/24*3=125ms)。

Google-Jank如圖:

玩遊戲卡頓真的是高手被針對嗎(刷手機或玩遊戲時卡頓)8

PerfDog-Jank如圖:

玩遊戲卡頓真的是高手被針對嗎(刷手機或玩遊戲時卡頓)9

真實測試FrameTime計算Jank,如下圖

玩遊戲卡頓真的是高手被針對嗎(刷手機或玩遊戲時卡頓)10

PerfDog-Jank如圖:

玩遊戲卡頓真的是高手被針對嗎(刷手機或玩遊戲時卡頓)11

備注:幀率低,并不是頓卡,如幀率都是隻有幾幀了,還有什麼頓卡而言?

目前主流遊戲對比Jank(10分鐘出現卡頓次數)如下:

玩遊戲卡頓真的是高手被針對嗎(刷手機或玩遊戲時卡頓)12

PerfDog-web平台

玩遊戲卡頓真的是高手被針對嗎(刷手機或玩遊戲時卡頓)13

  • PerfDog-Stutter(卡頓率)

PerfDog Stutter 定義:測試過程中,卡頓時長的占比。即Stutter(卡頓率)=卡頓時長/總時長

PerfDog Stutter計算思路:基于PerfDog Jank的基礎上,一次Jank卡頓,會有一次卡頓時間Jank time。測試過程中可能有多次Jank卡頓,即有多次卡頓時間Jank time。測試總時長為Time。

Stutter(卡頓率)=∑Jank time / Time

說明:Jank為卡頓次數,Stutter為卡頓率,Jank和Stutter趨勢有一緻性,但并非完全線性,因為每次Jank卡頓嚴重性是不一樣的。同時也說明了,沒有Jank卡頓出現,自然也就卡頓率是0了。

目前主流遊戲對比如下:

玩遊戲卡頓真的是高手被針對嗎(刷手機或玩遊戲時卡頓)14

  • 影響
    • 遊戲需要重點關注FPS、Jank、卡頓率?

遊戲流暢度是最影響用戶體驗的,所以需要重點關注FPS、Jank及卡頓率。

備注:比如遊戲中已預知的卡頓,如新UI彈出等造成卡頓,可認為是幹擾,需要剔除,不應算在Jank,可通過web雲上,框選右鍵删除幹擾數據。

    • APP需要重點關注FPS、Jank及卡頓率?

APP也需要關注FPS、Jank及卡頓率。隻是需要區分使用場景,如:

  1. 靜态頁面窗口

隻需關注FPS,理論FPS應該為0,否則,說明有冗餘刷新,容易引起手機發熱及耗電。

  1. 有滾動動畫頁面窗口

隻需關注FPS,FPS處于合适值即可,無需高頻刷新。

  1. 快速滑動頁面窗口。

需要關注FPS、Jank及卡頓率。手機交互靈敏度就是來源于此,Android系統才出黃油計劃Jank。一般滑動狀态下,幀率越高越好,Jank越小越好。

  1. 播放視頻頁面窗口。

需要關注FPS、 Jank及卡頓率,視頻卡頓直接影響用戶。視頻一般幀率18-24幀,Jank=0。比如微信播放視頻、視頻播放器等。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
劍網三官網簡化版本
劍網三官網簡化版本
在6月20日,《劍網3》迎來了新版本的更新,本次可下載的客戶端達有兩種,第一種是完整版的,完整版在瘦身之後,我們隻需要60多G的内存,就可以體驗完整的遊戲。當然我因為電腦配置比較好,所以在65G的基礎上,選擇了新客戶端的高清版。實不相瞞,之...
2025-06-28
招行逾期上門核實後會怎麼樣
招行逾期上門核實後會怎麼樣
針對“車評人袁啟聰曝光招商銀行洩露客戶信息、用私人手機收錢”一事。11月16日下午,招商銀行回應AI财經社稱,經查核,我行信用卡中心委托第三方公司處置賬務問題的流程合法合規,不存在洩露客戶信息的情況。對于袁先生反映的外呼人員會話态度問題,我...
2025-06-28
為什麼電腦會叫bug
為什麼電腦會叫bug
你知道電腦裡的bug是什麼意思嗎?“bug”是指電腦的硬件,系統軟件和應用軟件出錯,或者隐藏的一些缺陷和問題,而它本身是“飛蟲”的意思,但為什麼把“飛蟲”這個詞。用作形容電腦程序故障呢?據說原因是,約1945年,一位美麗的美國女海軍中尉及計...
2025-06-28
sql低版本數據庫怎麼恢複
sql低版本數據庫怎麼恢複
sql低版本數據庫怎麼恢複?1、支持MSSQLServer壓縮備份(.BAK)文件的解壓(重磅升級病毒破壞、其它原因損壞的壓縮備份文件可以解壓)2、優化了MSSQLServer備份文件轉換成MDF文件功能,支持多庫備份、差異備份、多文件備份...
2025-06-28
桌面壁紙iphone13promax專用
桌面壁紙iphone13promax專用
首發!自然風景系列手機壁紙,AndroidiOS系統通用。iPhoneX、11、12、13系列手機均适用。溫馨提示:4K超高清原圖上傳,記得查看原圖再保存哦~原圖保存方法:點擊圖片,長按圖片,點擊查看原圖,再點擊保存即可~小問卷:家人們還喜...
2025-06-28
Copyright 2023-2025 - www.tftnews.com All Rights Reserved