鼠标反应速度测试
下面的框会等一段随机的时间,然后整块亮起来。看到变亮就立刻按下左键,一轮 5 次,给中位数。
先把话说清楚:读到的毫秒数里,含着屏幕刷新、显示器响应和鼠标回报的延迟,所以它衡量的是这一整套设备,不是你的神经。这个数一定比你的真实反应时间大,大多少测不出来。它只适合在同一台机器上前后对比 —— 换台电脑、甚至只换台显示器,这个数就会整体平移十几二十毫秒。下面有完整的拆解。
换颜色就是换了一次测量条件 —— 不同颜色下的数不能直接比。
只上传结论数字与可信度档位,不上传原始采样
逐次记录
每一行是这一轮里的一次尝试。等不到中位数的时候,这张表里的原始读数才是唯一能看的 —— 它也是"中位数确实是从这些数里算出来的"的证据。
这个数里装了什么
屏幕上出现颜色,到你被记到"按下了",中间串着四段延迟。它们全都加在结果上,而且这一段测不出来 —— 浏览器看不到屏幕,也看不到 USB 线。所以这一页只报原始读数,不替你减掉一个估算的修正量:那只会得到一个看起来精确的假数字。
| 刷新率 | 一整帧 | 合计(含扫描、面板响应、鼠标采样) |
|---|---|---|
| 60Hz | 16.7ms | 约 25 – 35ms |
| 120Hz | 8.3ms | 约 15 – 25ms |
| 144Hz | 6.9ms | 约 12 – 18ms |
| 240Hz | 4.2ms | 约 8 – 14ms |
最大的一项不是玄学,是构造上必然的:颜色是在某一帧里刷上去的,而那一帧要等到下一次屏幕刷新才真正呈现。所以光这一项就固定多出整整一帧 —— 60Hz 上 16.7 毫秒,而 1000Hz 的鼠标回报率只占 1 毫秒。屏幕比鼠标影响大得多。
这也是这一页不理会计时精度的原因。回报率页需要跨域隔离,是因为它算的是相邻两个事件之差,8000Hz 下只有 125 微秒,而没隔离的时间戳精度是 100 微秒 —— 误差占掉 80%。这里只有一个事件,尺度是几十万微秒,100 微秒占万分之几,而鼠标 USB 采样比它大 10 – 80 倍。隔离一次也消不掉这里的误差,却要让每个访客白等一次页面重载 —— 所以这一页不隔离。
什么会让这个数变得不可比
- 换显示器或换刷新率。一整帧那一项直接跟着变 —— 同一台电脑从 60Hz 换到 144Hz,光这一项就少 8 毫秒。
- 换鼠标或改回报率。按键状态是搭在上报里送出去的,125Hz 是每 8 毫秒才采样一次,1000Hz 是每毫秒 —— 这一项最多能差出几毫秒。
- 页面被切走或被别的窗口挡住。后台标签页不绘制,颜色根本没刷上去。这一页检测到页面被切走会直接把这一轮作废、记一笔,而不是记一个几百毫秒的假成绩。
- 用触控板或触摸屏。那不是"按下左键",采样链路也完全不同。这一页在检测到指针不精确时会给出提示。
常见问题
因为这个数里装的不只是你的反应。从屏幕刷出颜色到你被记到按下,中间串了四段延迟:屏幕要等到下一次刷新才把画面呈现出来、显示器面板本身要几毫秒才变色、鼠标按键状态要等到下一次回报才被采样、系统和浏览器还要把它送过来。这几段全都加在结果上,加起来通常比你的神经反应时间还长。所以这一页测的是这台电脑的反应速度,不是你的反应速度。想知道自己有没有变快,只能用同一台机器前后比。
因为那段设备延迟是跟着机器走的固定值。60Hz 的屏光"等一整帧"这一项就比 144Hz 多出约 8 毫秒,再加上面板响应和鼠标回报率,两台机器之间差出十几二十毫秒很正常 ——这个差距比大多数人练一年的进步还大。所以拿成绩去跟别人比、或者跟网上"人类平均反应 250ms"的说法比,比的其实是显示器。同一个人在同一台机器上的成绩是很稳的 —— 这一页正是因此才敢用中位数。
因为平均值扛不住一次走神。一轮里有一次发呆 600 毫秒,平均值就被推高几十毫秒,而中位数几乎不动 —— 它只关心"排中间的那次是多少"。所以要连着看三个数:中位反应是结论,有效次数说明这一轮够不够,而最快一次是观察到的最小值、不是你的极限,再多测几次大概率还能更低。
颜色还没出来你就按了 —— 那不是反应时间,这一次不算,单独计数然后重来。等待时间每轮重新随机(1.5 – 4 秒),所以盯着节奏数秒数是没用的。这一条不是惩罚,是必须:不判抢跑的话,提前按住的手会正好落在颜色之后,记下一个又快又假的值。
颜色出来之后不到 100 毫秒就按下了。简单视觉反应的生理下限在 120 – 150 毫秒左右,比这更快的"反应"不可能是看到了才按 ——那是提前准备好了、正好落在颜色之后的那么一下。它排除在中位数之外,但照样单独计数,不会被悄悄丢掉。
左键按一下就好。判定看的是"按下"这个瞬间,而按住不放跨过颜色变化时,浏览器根本不会再发一次按下事件(按下事件只在"从没按到按下"的那一刻发一次),所以不设超时这一轮会一直挂着。超过 1500 毫秒没等到按下就算超时作废。右键和中键都不算,测试期间右键菜单和中键自动滚动也会被挡掉,不会打断你。
单次测量说明不了什么 —— 状态、有没有分神,都会让一次的结果差出几十毫秒。所以一轮跑 5 次,取中位数。有效次数不足 5 次时(比如作废了两次),中位数不给数、显示破折号 —— 两次的"中位数"其实就是平均值,那比不给还糟。
