屏幕刷新率测试
检测显示器实际刷新率,测试高帧率性能
什么是屏幕刷新率?
屏幕刷新率表示显示器每秒更新画面的次数,单位是 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 都会将 requestAnimationFrame 节流到约 1 Hz(Page Visibility 策略),即使标签页处于前台,交叉源隐藏 iframe 也可能被节流到约 30 fps。WebGL 和软件回退合成路径在 GC 暂停期间偶尔也会掉帧,因此要获得可靠读数,需要测试标签页处于前台、没有其他标签页播放全屏视频,且采样窗口至少 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 不会超过合成器所获得的刷新率。
- VRR(FreeSync / G-Sync):面板刷新率在其范围内浮动;低于 LFC 阈值时 GPU 会复制帧以保持亮度一致。
- 标签页节流:Page Visibility 将后台标签页降至约 1 Hz;即使父标签页在前台,交叉源隐藏 iframe 也被节流到约 30 fps。
- 采样窗口:低于 500 ms 的读数噪声较大;至少收集 3 秒且标签页处于前台,再取整到标准刷新率,以获得稳定估算。
示例
标准 60 Hz 办公显示器
模式: 弹跳小球
时长: 5 s
帧数: 298
当前 FPS: 59.6
估算刷新率: 60 Hz
2020 年以前的台式机和笔记本显示器大多被锁定在 60 Hz。144 Hz 电竞显示器
模式: UFO 测试
时长: 5 s
帧数: 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 Hz?
部分浏览器在最初几帧的 requestAnimationFrame 触发频率可能高于实际刷新率,尤其是在多显示器设置下,Chrome 可能采用了刷新率最高的那块屏幕。建议运行 10 秒以上以获得稳定读数。
刷新率和帧率(FPS)有什么区别?
刷新率是显示器每秒能显示的最大帧数;FPS 是你的应用每秒生产的帧数。两者相互独立:在 60 Hz 显示器上跑 200 FPS 的游戏,每秒仍只能显示 60 个独立帧(关闭 VSync 时还会出现撕裂)。
可变刷新率(G-Sync、FreeSync)会怎么样?
VRR 显示器会逐帧调整刷新率以匹配 GPU 输出。本页测出的是运行期间的平均刷新率;在 VRR 屏幕上,结果反映的是浏览器当前的渲染速率,而不是显示器的最大刷新率。
测试数据会保存或上传吗?
不会。测量完全在客户端完成,结果不会被记录或传输。
可以在窗口模式下测试,还是必须全屏?
都可以,但浏览器会限制后台标签页和失焦窗口的帧率以省电,往往降到约 1 fps。请保持标签页在前台运行测试,最好进入全屏,以获得准确结果。