浏览器测出来的 Hz 比标称低:不是工具不准,是链路上有一环没跑满

· 约 7 分钟 屏幕刷新率测试

买了 144Hz 显示器,插上电脑,用着好像和以前也没什么区别。是自己感知不够敏锐,还是根本没跑满?

刷新率测试 打开就测,5 秒给出实测值。但更有价值的是测出来和标称不一致的时候——这不是工具不准,而是从系统设置到线材到浏览器合成器这条链路上,有一环没跑满。这篇讲清怎么定位是哪一环。

先分清刷新率和帧率

这两个词日常混用,排查问题时必须分开:

刷新率帧率
定义显示器每秒重绘多少次内容每秒实际产出多少画面
单位Hzfps
决定因素面板能力 + 当前信号模式渲染性能
是否可变固定,或由 VRR 动态调节随负载波动

两者的关系:

  • 帧率 > 刷新率:多出来的帧被丢弃(开垂直同步)或造成画面撕裂(关垂直同步)
  • 帧率 < 刷新率:同一帧被重复显示,表现为卡顿

本工具测的是刷新率,同时用掉帧数和按时出帧率反映渲染有没有跟上。

测量原理:为什么不能简单取平均

浏览器的 requestAnimationFrame 由显示器的垂直同步信号驱动,帧间隔的倒数就是当前渲染路径上的实际刷新率。听起来直接取平均就行,但有两个坑:

坑一:单次卡顿会把平均值整个拉偏。 一次 200ms 的系统卡顿,混进 300 个正常样本里,足以让平均值掉好几 Hz。

坑二:“总帧数 ÷ 总时长”会把掉帧误算成刷新率降低。 掉了一帧意味着这一次回调跨过了两个刷新周期——屏幕依然在 144Hz 刷新,只是浏览器没赶上其中一次。按总数除的话,这个区别就被抹平了。

工具的做法是:

1. 先用「中位帧间隔」确定基准周期        ← 中位数天然抗离群值
2. 把每个间隔还原成它实际跨过的周期数    ← 掉一帧记 2 个周期,而不是记一次慢帧
3. 偏离基准过大的样本整段丢弃            ← 排除切标签页、系统卡死这类污染
4. 累计周期数 ÷ 累计时长 = 结果          ← 长窗口累加

第 4 步的长窗口累加还有一个额外好处:天然规避了浏览器对 performance.now() 的精度削减。出于时序攻击防护,现代浏览器会把高精度计时器的分辨率降到几十到上百微秒,单帧测量误差不小,但累计几百帧之后这个误差被摊薄到可以忽略。

常见刷新率与帧时间对照

刷新率帧时间典型场景
60 Hz16.67 ms办公显示器、多数入门笔记本
90 Hz11.11 ms中端手机、部分平板
120 Hz8.33 ms旗舰手机、iPad Pro、ProMotion 屏 Mac
144 Hz6.94 ms主流电竞显示器
165 Hz6.06 ms中高端电竞屏
240 Hz4.17 ms竞技电竞屏
360 Hz2.78 ms职业电竞

从 60Hz 到 144Hz,帧时间从 16.67ms 缩到 6.94ms,画面更新快一倍多。日常感知最明显的不是游戏,而是滑动网页、拖动窗口、移动鼠标指针时的连续感——这些操作里眼睛在追踪一个持续移动的目标,帧率不够时会看到明显的拖影和台阶。

四层排查,按顺序查

第一层  系统显示设置    ← 最高频,八成问题在这
第二层  线材 / 接口带宽  ← 静默降档,不报错
第三层  浏览器硬件加速   ← 最易误判,系统里仍显示 144Hz
第四层  电源 / 省电策略  ← 最隐蔽,插电正常拔电就掉

第一层:系统显示设置

绝大多数显示器出厂默认 60Hz,插上线不会自动跑满。

  • Windows:设置 → 系统 → 显示 → 高级显示器设置 → 选择刷新率
  • macOS:系统设置 → 显示器 → 刷新率
  • 手机:一般没有手动档,但要关掉省电模式

改完立刻重测,数字应该马上跟着变。下拉框里根本没有高刷选项,说明信号链路不支持,进第二层。

第二层:线材与带宽

带宽不够时,系统会静默降到能跑的档位而不报任何错——这是最容易被忽略的一层。大致的能力边界:

接口大致带宽能跑到
HDMI 1.410.2 Gbps4K@30、1080p@120
HDMI 2.018 Gbps4K@60、2K@144
HDMI 2.148 Gbps4K@120、8K@60
DP 1.221.6 Gbps4K@60、2K@165
DP 1.432.4 Gbps4K@120(需 DSC 压缩)
DP 2.0 / 2.1(UHBR)最高 80 Gbps4K@240、8K@120

重点怀疑对象

  • 显示器随机附送的短线(经常是 HDMI 1.4 时代的库存)
  • Type-C 转 HDMI 的廉价转接头(芯片版本决定上限,和线无关)
  • 三米以上的无源长线(信号衰减导致降速协商)
  • USB-C 的 DP Alt Mode 通道数:同时跑 USB 3 数据时只剩两条通道,带宽直接砍半——这是笔记本外接扩展坞时高刷掉档的典型原因

第三层:浏览器硬件加速

关掉硬件加速后,浏览器退回软件合成,帧率被锁在 60 甚至更低——而系统显示设置里仍然显示 144Hz。这一层最容易误判,因为所有”官方数字”都是对的,只有实测掉下来。

Chrome / Edge:设置 → 系统 → 使用图形加速功能(改完需要重启浏览器)。

另外检查扩展:录屏、滤镜、护眼、广告拦截里带页面重绘的那类,都会插进合成链路拖慢帧。用无痕窗口(默认禁用扩展)测一次,是最快的对照实验。

第四层:电源与省电策略

这一层最隐蔽,因为它是动态的——插电时正常,拔电就掉:

  • 笔记本拔掉电源后的节能策略
  • 手机省电模式
  • Safari 的低电量模式(把网页硬限到 30fps)
  • Windows 的节电模式

测出 30Hz 左右基本可以直接归到这一层——没有任何显示器的物理刷新率是 30Hz,这个数字一定来自软件限帧。另一种可能是测试环境不对:在远程桌面、虚拟机、投屏软件里测到的是串流帧率,跟本机屏幕没关系。

可变刷新率:为什么数字一直在跳

如果实测值在 60 和 120 之间来回浮动,多半是 VRR 在工作:

技术常见于行为
G-Sync / FreeSync电竞显示器刷新率跟随渲染帧率,消除撕裂
ProMotioniPhone / iPad Pro / MacBook Pro内容静止时降到 24Hz 甚至更低
LTPO旗舰手机1Hz 到 120Hz 连续调节

这不是故障,是省电设计——屏幕是整机功耗大头,静态内容下降频能省下可观的电量

工具在整个测量期间保持满负载动画,就是为了把这类屏幕推到峰值。想测得更接近峰值:全屏测(全屏时合成器路径更短)、接上电源手机把亮度调高(部分机型低亮度下会限帧)。

五个指标怎么读

拿到结果之后,光看 Hz 是不够的:

指标含义参考线
刷新率实测 Hz对上标称值
帧时间一帧占用毫秒数 = 1000 ÷ Hz与刷新率互为倒数
按时出帧赶上 vsync 的帧占比≥95% 干净,<90% 有程序在抢资源
掉帧采样窗口内漏掉的帧数偶发一两帧正常
抖动帧间隔的标准差小于帧时间的 5%(144Hz 下约 0.35ms)
1% 低帧最差 1% 的帧折算成帧率与平均值差距越小越好

抖动和 1% 低帧比平均值更贴近体感。同样测出 144Hz,抖动 0.1ms 是丝滑,抖动 2ms 是”数字好看但用着发涩”;平均 144 而 1% 低帧只有 40,说明存在周期性的卡顿源——后台程序、垃圾回收、散热降频都可能是元凶。

测量环境的三条注意

  1. 测的是浏览器窗口当前所在的那块屏。多显示器用户要把窗口整个拖到另一块屏再重测。
  2. 窗口跨在两块屏之间时结果不可信——合成器要同时对齐两个 vsync,掉帧会明显增多。
  3. 不要切走标签页。后台标签的 requestAnimationFrame 会被浏览器压到 1Hz 甚至完全暂停,工具检测到切换会直接作废并重测。

高刷到底值不值

参数表说服不了眼睛。工具里的拖影对比跑道把 30Hz、60Hz 和你屏幕的原生刷新率并排放,同样的方块横向移动,眼睛跟着追:

  • 30Hz 跑道:明显的台阶感,文字完全糊掉
  • 60Hz 跑道:连续但有拖影,文字勉强能辨认
  • 原生跑道:拖影明显收窄,文字清晰度提升

关键在于”眼睛跟着动”——盯着屏幕一个固定点看时,三条跑道的差别小得多。这也解释了为什么高刷的收益在滑动、拖动、转视角这类操作上最明显,而看静态网页时几乎无感。

相关的几个”新设备到手先验一遍”

总结

  • 实测值低于标称本身就是诊断信息,说明高刷没有真正生效,不是工具不准
  • 四层排查按顺序走:系统设置 → 线材带宽 → 浏览器硬件加速 → 省电策略,八成问题在第一层
  • 带宽不够是静默降档,不会报错;USB-C 同时跑数据时通道减半是外接扩展坞掉档的典型原因
  • 数字一直跳多半是 VRR,全屏 + 接电源能测到更接近峰值的值
  • 30Hz 一定是软件限帧,没有物理刷新率是 30Hz 的显示器
  • 抖动和 1% 低帧比平均 Hz 更贴近卡顿体感,三项都过才算真顺滑

❓ 常见问题

测出 60Hz 但显示器写着 144Hz,先查哪一项?

先查系统显示设置,八成问题出在这里。绝大多数显示器出厂默认 60Hz,插上线不会自动跑满——Windows 在设置 → 系统 → 显示 → 高级显示器设置里改,macOS 在系统设置 → 显示器 → 刷新率里改。改完立刻重测,数字应该马上跟着变。改不上去(下拉框里根本没有 144Hz 选项)才轮到第二层:线材和接口带宽不够,或者用了不支持高刷的转接头。第三层是浏览器硬件加速被关掉,第四层是省电策略在限帧。按这个顺序查,绝大多数情况两步之内定位。

数字一直在 60 和 120 之间跳,是测不准吗?

是可变刷新率在工作,测的就是真实情况。G-Sync、FreeSync、手机的 LTPO 自适应刷新、苹果的 ProMotion 都会按画面内容动态调整刷新率——静止页面主动降到 60、48 甚至 24Hz 省电,有动画时才拉满。本工具在整个测量期间保持满负载动画,就是为了把这类屏幕推到峰值;如果结果仍在浮动,页面会标注并给出实测区间。想看纯粹的峰值:全屏测一次(全屏时合成器路径更短、系统更倾向给满帧),并且接上电源。

刷新率和帧率(FPS)到底是不是一回事?

不是,一个是硬件上限,一个是软件产出刷新率是显示器每秒能重绘多少次,单位 Hz,由面板和当前的信号模式决定;帧率是内容每秒实际产出多少画面,单位 fps,由渲染性能决定。两者的关系:帧率高于刷新率时,多出来的帧被丢弃(开垂直同步)或造成画面撕裂(关垂直同步);帧率低于刷新率时,同一帧被重复显示,表现为卡顿。本工具测的是刷新率,同时用掉帧数和按时出帧率两个指标反映渲染有没有跟上——两个数一起看,才知道"多少 Hz"之外还有"稳不稳"。

测出来只有 30Hz 左右,屏幕是坏了吗?

不是,没有任何显示器的物理刷新率是 30Hz——这个数字一定来自软件限帧。三个最常见的来源:(1)Safari 的低电量模式会把网页硬限到 30fps;(2)省电策略,笔记本拔掉电源、手机开省电模式,系统会主动降帧;(3)测试环境不对,在远程桌面、虚拟机或投屏软件里测到的是串流帧率,不是本机屏幕的刷新率。关掉省电模式、接上电源、在本机浏览器里重测,数字通常立刻回到正常值。

抖动和 1% 低帧该怎么看?多少算好?

这两个指标比平均 Hz 更贴近卡顿体感抖动是帧间隔的标准差——同样测出 144Hz,抖动 0.1ms 和 2ms 的观感差很远,前者是丝滑,后者是"数字好看但用着发涩"。经验参考:抖动小于帧时间的 5%(144Hz 下约 0.35ms)算干净。1% 低帧是最差 1% 的帧折算成帧率,反映"最卡的那一瞬间"——平均 144、1% 低帧只有 40,说明有周期性的卡顿源(后台程序、GC、散热降频)。按时出帧率低于 90% 时,先关掉其他标签页和后台程序重测,多数情况能恢复。

手机能测吗?测出来每次都不一样正常吗?

能测,而且每次不一样往往是正常的。手机浏览器同样走 vsync 驱动的帧循环,测量原理一致。但手机上有两个变量:LTPO 屏幕会按内容在 1Hz 到 120Hz 之间连续调节,这正是它存在的意义——阅读静态内容时降到极低省电,滑动时拉满;省电策略比电脑激进得多,电量低于某个阈值会直接锁 60Hz。想测峰值:接上电源、关掉省电模式、把亮度调高(部分机型低亮度下会限帧)、全屏测。即便如此,不同页面不同时刻测出不同数字仍然是这类屏幕的正常行为。

打开 屏幕刷新率测试 打开即测·5 秒出 Hz 实测值·帧时间图/掉帧/抖动/1% 低帧·30/60/原生三跑道拖影对比·全屏测峰值

📖 同一工具的其他教程

🔗 相关阅读

全部教程 →