键盘延迟测试工具

开始测试后连续按下普通按键,估算浏览器事件时间戳到 JavaScript 处理开始之间的调度延迟,并查看中位数、P95与样本分布。

测试设置与实时采样

允许 10~200 个整数样本,默认 50;达到目标后自动结束。

连续按下同一普通按键开始后聚焦此区域;Tab 保留导航,repeat、组合输入和系统修饰键不会计入。
有效样本
0
完成进度
0%
最近按键
最近延迟
目标样本进度0 / 50

当前阶段尚未开始

设置目标样本数后,点击“开始新测试”。
结果概览等待测试
中位调度延迟开始测试后显示统计结果。
平均值
P95
MAD 抖动

结果只描述当前浏览器事件调度阶段,不能单独代表键盘硬件、USB/蓝牙链路或按键到屏幕的总延迟。

按键调度延迟的分布

有效样本直方图

样本数量中位数P95

完成有效测试后,直方图会展示样本集中区间和慢事件形成的长尾;文字结果仍是主要答案。

了解更多

方法、公式与结果口径

若 Event.timeStamp 为 epoch 时间戳,先减去 performance.timeOrigin 转为当前页面相对时间;单次调度延迟 dᵢ = performance.now() − normalizedEventTimestamp。负偏差超过 1ms 或大于 10000ms 的样本丢弃。平均值、MAD、中位数和 P95 均使用未舍入样本;P95 使用线性插值分位数。

内部保留未舍入毫秒值;页面显示 2 位小数,样本充分性和分位数均使用原始值。

独立测试覆盖相对与 epoch 时间戳、负偏差容差、巨值拒绝、P95 线性插值、MAD、样本边界、直方图分箱、repeat 与组合输入排除、Tab 导航、失焦作废和多视口布局。

使用方法与限制

网页不知道物理按键触发时刻,不能测出纯硬件端到端延迟;CPU 负载、浏览器扩展、后台标签、输入法、计时器精度和隐私策略都会影响结果;repeat、组合输入、Tab、Ctrl、Alt、Meta 和纯修饰键不计入;页面失焦或转入后台会使当前未完成轮次作废。

键盘延迟怎么计算?

工具统一 Event.timeStamp 与 performance.now 的时间基准,再用事件处理开始时刻减去事件时间戳,得到浏览器事件调度延迟。统计值来自未舍入的有效样本。

网页能测键盘硬件绝对延迟吗?

不能。网页不知道物理触发时刻,结果混合了设备固件、连接、操作系统、浏览器派发和当前主线程负载,只适合比较当前浏览器环境的一致性。

P95 键盘延迟是什么意思?

P95 表示约 95% 的有效样本不高于该值。它比平均值更能显示少量慢事件形成的长尾,但样本太少时仍不稳定。

工具信息与来源

所有按键事件和统计都在当前浏览器本地处理,不上传,不调用远程 API,也不写入 URL 或本地存储。

本工具未复用第三方运行代码或资源,算法和界面为独立实现;外部链接仅用于说明浏览器事件和高精度时间标准。

规范与方法来源