鼠标延迟测试
测量鼠标点击的响应速度。每次点击都会被打上两个时间戳——一次是浏览器创建事件时,一次是本页面的处理程序运行时——以显示事件传递延迟;同时,简短的反应测试会记录当测试区翻转时你点击的速度。将鼠标移到测试区上方,即可查看浏览器接收到的实时事件速率。
就绪
事件速率
—events/s
在测试区上移动
事件 → 处理程序
—ms
最近一次点击
点击以开始测试
当测试区翻转时,尽可能快速地点击。每次点击还会记录其事件到处理程序的延迟。
最佳
—
平均
—
最近
—
尝试次数
0
近期点击延迟
数值越低越好你的点击延迟测试记录将显示在此处
本测试的工作原理
每个指针事件都携带一个 timeStamp,记录浏览器创建该事件的时刻。当你的点击到达处理程序时,我们读取 performance.now() 并将两者相减,得到事件到处理程序的延迟——也就是你的点击在被本页面处理之前,经过输入栈和事件循环所花费的时间。此外,测试区还会进行反应测试:它会等待一个随机的时间间隔,然后翻转状态,并记录该翻转与你点击之间的间隔,作为可在多次尝试间比较的点击延迟数值。移动速率读数统计每秒到达的指针移动事件数量,反映浏览器被告知光标移动的频率。
鼠标延迟的成因
- 开关消抖:固件会在按下后等待几毫秒,以确认触点已稳定接触,这会给每次点击增加一个固定的小延迟。
- 轮询率:125 Hz 的鼠标最多每 8 ms 上报一次,1000 Hz 的鼠标则每 1 ms 上报一次,因此较低的轮询率可能会让点击延迟到下一次上报才被发送。
- 连接方式:有线 USB 是直连的;无线连接则增加了一次无线电传输,低功率或拥挤的 2.4 GHz 链路可能带来抖动,不过优质的现代无线接收器已经非常接近有线连接的表现。
- USB 与操作系统调度:主机按计划轮询设备,随后操作系统还需要唤醒、排队并将事件分派给浏览器。
- 浏览器与页面负载:繁忙的主线程或高负载页面会延迟处理程序的实际运行时间,这正是事件到处理程序数值所反映的内容。
鼠标延迟、输入延迟与轮询率的区别
这三者衡量的是同一条链路中的不同环节。轮询率是鼠标以赫兹为单位上报其位置和按键状态的频率——鼠标轮询率测试工具会根据移动事件的间隔来估算这一频率。本页面测量的鼠标延迟,是点击转变为页面可处理事件的速度。输入延迟则是从你的操作到屏幕上出现可见变化的完整端到端延迟,其中还包括显示器自身的响应和刷新过程——输入延迟测试工具涵盖了这一反应加显示的完整环节。较高的轮询率可以降低鼠标延迟的一个来源,但延迟以及端到端的输入延迟同样取决于操作系统、浏览器和显示器。
如何降低鼠标延迟
- 使用有线连接,或选择靠近鼠标放置的高质量低延迟 2.4 GHz 无线接收器,而非蓝牙连接。
- 如果传感器和连接能够稳定支持,可在鼠标软件中提高轮询率(500 或 1000 Hz)。
- 如果制造商软件提供该选项,可降低点击消抖时间,同时权衡出现双击误触的风险。
- 保持驱动程序和固件为最新版本,并关闭会占满 CPU 或 USB 总线的后台应用程序。
- 将鼠标直接插入电脑,而不要通过无供电的集线器或较长的延长线连接。
