螢幕刷新率測試
檢測顯示器實際刷新率,測試高幀率效能
什麼是螢幕刷新率?
螢幕更新率表示顯示器每秒更新畫面的次數,單位是 Hz。60Hz 代表每秒最多更新 60 次,而 120Hz、144Hz、240Hz 等高更新率在整個設備鏈路支援時,可以讓捲動、動畫、繪圖和遊戲畫面更順暢。更新率測試用來確認螢幕是否真的以預期頻率運作,還是受到系統設定、省電模式、線材、轉接器、顯示卡驅動或外接螢幕限制。測試結果需要搭配環境判斷,因為瀏覽器負載、背景工作和幀時間波動都可能影響讀數。
使用方法
使用方式
- 選擇測試模式:彈跳球、滾動條紋、閃爍測試或 UFO 測試
- 點選「開始測試」按鈕以啟動偵測
- 觀察動畫流暢度與 FPS 數值變化
- 稍候數秒即可看到預估的更新率結果
- 建議使用全螢幕測試以獲得更準確的資料
測試提示
- 測試前關閉其他動畫密集的分頁;瀏覽器負載、省電模式和外接螢幕都可能影響測量的流暢度。
- 將顯示的 FPS 與作業系統或顯示卡控制面板中的螢幕設定進行比對。
使用場景
技術原理
刷新率估算使用 requestAnimationFrame(t => ...),這是瀏覽器中與顯示器垂直同步訊號綁定的回呼函式。每次呼叫回傳一個毫秒級的 DOMHighResTimeStamp;相鄰時間戳的差值即為每幀間隔,1000 除以這些間隔的移動平均值即為以赫茲為單位的估算速率。估算器收集數百幀以平均掉瞬時卡頓,然後將結果取整到最接近的常見面板刷新率:60、75、90、120、144、165、240 或 360 Hz。 測量受限於鏈路中最慢的環節。144 Hz 面板在作業系統顯示設定鎖定在 60 Hz 時仍顯示為 60 Hz;在 HDMI 1.4 線材無法承載頻寬時(1080p @ 144 Hz 需要約 7.6 Gbps,超過 HDMI 1.4 的 8.16 Gbps 上限,考慮色深後更是如此)也會如此;GPU 驅動程式套用省電上限時亦然。可變刷新率技術(AMD FreeSync、NVIDIA G-Sync)讓面板在其工作範圍內保持任意速率,當內容幀率低於最低值時降至低幀率補償模式。 瀏覽器排程也有自身的上限。當測試分頁失去焦點時,Chromium 和 Firefox 都會在 Page Visibility 機制下將 requestAnimationFrame 節流至約 1 Hz;交叉觀察者節流甚至能在分頁活躍時將隱藏的 iframe 限制在約 30 fps。WebGL 和軟體回退合成路徑在垃圾回收暫停期間偶爾也會掉幀,因此要獲得乾淨的讀數,需要讓測試分頁保持在前景、另一個分頁沒有全螢幕影片播放,且至少 3 秒的取樣視窗才可信任取整結果。
- 取樣:對 requestAnimationFrame 時間戳求差值;FPS = 1000 / 平均(幀間隔 ms);估算器取整至 60/75/90/120/144/165/240/360 Hz 的分檔。
- 頻寬瓶頸:1080p @ 144 Hz 需要約 7.6 Gbps,4K @ 120 Hz 需要約 25 Gbps;頂級規格需要 HDMI 2.1(48 Gbps)或支援 DSC 的 DisplayPort 1.4(32.4 Gbps)。
- 作業系統/驅動限制:面板可能標示支援 144 Hz,但 Windows 顯示設定或 NVIDIA 控制面板將其鎖定在 60 Hz;rAF 無法超過合成器獲得的幀率。
- 可變刷新率(FreeSync / G-Sync):面板速率在其範圍內浮動;低於 LFC 閾值時 GPU 會複製幀以保持亮度一致。
- 分頁節流:Page Visibility 將背景分頁降至約 1 Hz;即使父分頁在前景,交叉來源的隱藏 iframe 也會被節流至約 30 fps。
- 取樣視窗:低於 500 ms 的讀數波動大;將分頁保持在前景至少 3 秒再取整至標準刷新率,才能獲得穩定的估算。
範例
標準 60 Hz 辦公螢幕
模式: 彈跳球
持續時間: 5 秒
影格數: 298
目前 FPS: 59.6
推估更新率: 60 Hz
2020 年前推出的多數桌機與筆電顯示器上限為 60 Hz。144 Hz 電競螢幕
模式: UFO Test
持續時間: 5 秒
影格數: 718
目前 FPS: 143.6
推估更新率: 144 Hz
常見於電競面板;需要 DisplayPort 1.2+ 或 HDMI 2.0+,且作業系統的更新率必須設定為 144 Hz。背景分頁節流
模式: 捲動長條
目前 FPS: 30.0
推估更新率: 30 Hz(被限制)
當分頁失去焦點時,Chrome 與 Firefox 會將 requestAnimationFrame 節流至約 30 fps,因此測試時請務必讓分頁保持可見。常見問題
這個測試是怎麼量出更新率的?
它使用 requestAnimationFrame() 來計算每秒實際渲染了多少影格。瀏覽器會在每次螢幕更新時觸發一次這個回呼,所以將影格數除以經過時間,就能得到有效更新率。結果通常會落在常見的整數值(60、75、100、120、144、165、240 Hz)。
為什麼測出來比螢幕規格上的更新率還低?
常見原因有:省電模式正在限制 GPU;連接線不支援標稱的更新率(HDMI 1.4 在 4K 下最高 60 Hz,要更高需要 DP 1.2+ 或 HDMI 2.0+);雖然螢幕能跑高更新率,但作業系統設定卻是 60 Hz;其他分頁占用主執行緒導致掉影格。
為什麼 60 Hz 的螢幕測出來比 60 還高?
部分瀏覽器在剛開始的幾個影格中,requestAnimationFrame 觸發的速度可能比實際螢幕更新還快,特別是多螢幕的環境,Chrome 可能會抓到更新率最高的那台螢幕的數值。建議跑滿 10 秒以上再看穩定值。
更新率和影格率(FPS)有什麼差別?
更新率是螢幕每秒能顯示的最大影格數;FPS 則是應用程式每秒實際產出的影格數。兩者是獨立的:在 60 Hz 螢幕上以 200 FPS 執行的遊戲,每秒實際只能顯示 60 個不同的影格(沒開 VSync 的話還會撕裂)。
可變更新率(G-Sync、FreeSync)會怎樣?
VRR 螢幕會逐影格調整更新率以配合 GPU 輸出。本頁測量的是執行期間的平均速率;在 VRR 螢幕上得到的結果反映瀏覽器當下實際渲染的速率,不是螢幕的最大值。
會儲存或上傳任何資料嗎?
不會。測量完全在客戶端進行,結果不會被記錄或傳送。
可以在視窗模式跑這個測試嗎,還是一定要全螢幕?
都可以,但瀏覽器會節流背景分頁與失去焦點的視窗(為了省電,常常降到 1 fps 左右)。請讓分頁保持在前景,最好開全螢幕,才能得到準確結果。