鼠标点击延迟测试 — 测量输入滞后 (ms)
点击测试目标,测量从硬件按键到浏览器接收到事件之间的耗时。数值越低越好。
在此处点击采样
快速多次点击以获得稳定平均值
样本数
0
平均延迟
--ms
最小
--ms
最大
--ms
延迟 = performance.now() − PointerEvent.timeStamp。操作系统、浏览器、显示器都会在鼠标硬件之外引入额外延迟,因此绝对数值因机器而异,建议在同一设备上对比连续样本。
样本日志
点击上方目标开始记录样本
什么是鼠标延迟?
鼠标延迟是从按下鼠标按键到应用程序可获得该输入事件之间的总耗时,由机械触发延迟(开关闭合)、USB 传输延迟(受回报率制约)、操作系统处理、浏览器事件分发组成。
本测试隔离了 PointerEvent 时间戳(在操作系统/浏览器边界生成)到 JavaScript 处理函数运行之间的链路,差值 performance.now() − event.timeStamp 反映了你的代码能反应之前在浏览器管线内消耗的时间。
影响延迟的因素
连接方式:有线鼠标通常比普通无线快 1–2ms。高端无线(罗技 Lightspeed、雷蛇 HyperSpeed)已可与有线持平。
回报率:125Hz 缓冲多达 8ms,1000Hz 仅 1ms,4000–8000Hz 可接近亚毫秒。更高回报率不仅降低平均延迟,也降低波动。
显示器:60Hz 每帧 16.7ms,144Hz 仅 6.9ms,240Hz 仅 4.2ms。这是叠加在你这里测得的鼠标延迟之上的额外耗时。
微动开关:光学微动消除了机械微动固有的去抖动延迟(通常 4–10ms)。
如何降低延迟
游戏使用独占全屏模式——窗口模式会引入合成器延迟。
关闭垂直同步,或使用 G-Sync / FreeSync 自适应刷新避免帧节奏缓冲。
在驱动中将鼠标回报率设为最高值(通常 1000Hz 或更高)。
使用传感器原生 DPI 档位——非原生档位会带来插值计算开销。
升级硬件:240Hz+ 显示器和 1000Hz+ 鼠标是反应能力的硬上限。
测试原理
PointerEvent.timeStamp 是一个与 performance.now() 同步的 DOMHighResTimeStamp,浏览器在收到操作系统输入事件时设置;performance.now() 在 JS 处理函数中读取,二者差值即该次点击在浏览器内的分发延迟。
这并非完整的硬件→屏幕延迟——既不含从物理触发到操作系统接收的耗时,也不含处理函数返回到画面呈现的耗时;但它对系统负载非常敏感:打开一个重载页面再测,延迟会立刻飙升。
常见问题
本测试通过 performance.now() − PointerEvent.timeStamp 的差值,测量从浏览器接收硬件事件到 JavaScript 处理之间的延迟,是衡量系统输入响应能力的综合指标。
5ms 以下为极佳,5–10ms 优秀,10–20ms 一般,20ms 以上偏差。多数桌面系统在 1–8ms 区间,普通无线鼠标可能在 8–15ms。
操作系统调度、浏览器渲染周期、USB 轮询时机都会引入毫秒级抖动。建议采集 30–50 个样本看平均值,而非单次值。
使用有线或 Lightspeed 级无线鼠标 + 1000Hz+ 回报率,游戏开全屏,关闭垂直同步,使用高刷显示器,关闭后台占用 CPU 的程序。
不包含。显示器延迟需通过高速摄像机捕获画面来测量。本测试仅覆盖鼠标到浏览器之间的链路。