瀏覽器渲染幀率測試

在三種模擬渲染負載下,量測本瀏覽器分頁的實際渲染幀率。

渲染幀

渲染負載

中等

每幀繪製多個運動圖元以製造負載。切換檔位不會重置取樣。

幀時間直方圖

最近 60 幀

最近 60 幀 · 超過 20ms 的柱為紅色,其餘為綠色。

實際渲染幀率即時
—FPS
獨立 rAF 取樣當前檔位: 中等

幀率統計

0 / 300
當前幀率
— FPS
平均幀率
— FPS
最低幀率
— FPS
最高幀率
— FPS
1% 低幀
— FPS
掉幀計數
—

量測說明

此處測量的是本瀏覽器分頁實際渲染的幀率,並非遊戲內 FPS,也不是顯示器的更新率(Hz)。

不會吸附到 60 / 120 / 144 等標準值:顯示的是原始渲染幀率,因此高負載下會下降。

取樣視窗

使用 300 幀環形緩衝保存近期幀時間;當前 / 平均 / 最低 / 最高 / 1% 低幀 / 掉幀每 1000ms 刷新一次。1% 低幀是最慢 1% 幀的平均幀率;幀時間超過中位幀時間 1.5 倍即計為掉幀。

當前檔位
中等
每幀圖元數
160
取樣幀數
0

FPS 測試:測量實際渲染幀率與幀時間穩定性

FPS 測試測量的是瀏覽器每秒真正渲染出多少幀,以及這些幀到來得是否均勻。平均幀率很高也可能藏著肉眼能感覺到的卡頓,所以本頁同時給出幀時間分布、最慢 1% 幀與掉幀計數。三檔渲染負載可以看出設備從哪裡開始吃力。全部取樣透過 requestAnimationFrame 在本機完成,資料不離開分頁。

FPS 測試測量目前瀏覽器分頁每秒實際渲染的幀數,不是螢幕更新率,也不是遊戲內幀率。它取樣 requestAnimationFrame 的幀間隔,輸出目前/平均/最低/最高 FPS、1% low(最慢 1% 幀的平均幀率)以及超過中位幀時間 1.5 倍的幀數。60 Hz 對應約 16.7 ms 的幀預算;結果受 GPU、分頁可見性與背景負載影響。

定義
目前瀏覽器分頁每秒實際渲染完成的幀數
單位
FPS;幀時間 ms = 1000 / FPS
取樣
requestAnimationFrame,300 幀環形緩衝,1 秒統計視窗
1% low
樣本中最慢 1% 幀的平均幀率
掉幀判定
幀時間超過中位幀時間 1.5 倍,屬本工具判定規則,非業界標準
參考幀預算
60 Hz ≈ 16.7 ms · 120 Hz ≈ 8.3 ms · 144 Hz ≈ 6.9 ms · 165 Hz ≈ 6.1 ms
上限
受螢幕更新率與垂直同步約束,60 Hz 螢幕每秒最多呈現 60 幀
無法測量
遊戲內幀率、GPU 使用率、螢幕標稱 Hz
資料
取樣全部留在瀏覽器分頁內,不上傳、不儲存

FPS 測試到底測的是什麼?

測的是渲染迴圈,不是面板。瀏覽器每次準備繪製一幀時 requestAnimationFrame 會觸發,兩次回呼之間的間隔就是幀時間,用 1000 除以它得到該時刻的幀率。把這些間隔取平均,就是大多數計數器顯示的 FPS;而分布才能說明輸出是否穩定。兩台裝置都可能顯示 60 FPS,一台每幀穩定在 16.7 ms,另一台在 8 ms 與 25 ms 之間來回跳 —— 後者平均值相同,卻明顯卡頓。

這和螢幕每秒重繪多少次是兩個問題。要測量面板的 Hz,請用專門的更新率工具;那個值屬於硬體與連結屬性,這裡的數字描述的是目前分頁實際畫出了多少幀。最終流暢度由兩者中較低的一方決定。

為什麼 1% low 比平均幀率更有參考價值?

最慢的 1% 幀正是卡頓所在:一次垃圾回收、一次紋理上傳、一個背景分頁被喚醒。單幀 50 ms 幾乎不會拉低一分鐘的平均值,但你會清楚看到一次頓挫。把這一小段的平均幀率與掉幀數一起展示,尖刺就藏不住了。本頁把超過樣本中位幀時間 1.5 倍的幀計為掉幀,這是本工具為凸顯離群值自定的閾值,不是標準跑分定義。

直方圖也按這個思路讀:約 20 ms 以下的柱畫成綠色,更慢的畫成紅色。一連片綠柱代表渲染穩定;紅柱按固定節奏出現,通常是背景工作在主執行緒搶資源,而不一定是顯示卡效能不足。

各更新率對應的幀預算

更新率幀預算穩定渲染時的表現
60 Hz16.7 ms幾乎全為綠柱,平均接近 60 FPS
120 Hz8.3 ms緊密聚集在 8 ms 附近,加載後開始出現紅柱
144 Hz6.9 ms餘量很小,背景工作容易造成可見尖刺
165 Hz6.1 ms需要輕量頁面與未降頻的 GPU

常見問題

FPS 測試是做什麼用的?+

測量瀏覽器分頁每秒渲染的幀數以及幀時間是否穩定,用於發現卡頓、在同一裝置上對比不同渲染負載、檢查頁面是否守住幀預算,不能用來讀取螢幕規格。

什麼是 1% low?+

樣本中最慢 1% 幀的平均幀率。它能暴露被長期平均值掩蓋的短暫停頓,通常比平均 FPS 更接近肉眼感受到的流暢度。

實測幀率為什麼低於螢幕更新率?+

可能是頁面對目前 GPU 太重、瀏覽器在限制背景分頁,或裝置處於省電模式。渲染還會與螢幕同步,因此更新率只是上限而非保證值。

結果會上傳或儲存嗎?+

不會。幀時間只存在記憶體中用於顯示,離開頁面即丟棄,沒有帳號、沒有網路請求、不保留歷史記錄。