HID 时距实验室
B0 / BEAT ZERO · 0ms → 20ms · SHARED CLOCK

一次按下,几十毫秒去哪了

这里不谈参数表上的「响应速度」,只做一件事:把 HID 设备从金属触点闭合到屏幕像素改变之间的整条链路,摊到一把毫秒刻度尺上,逐段打点、逐段分配额度、逐段复核。零点由触点侧光电跳变给出,终点由显示侧亮度跨阈给出,两端之间每一段都有可回算的时距。

为什么要单独做这张账?因为大多数关于「卡不卡」的争论,最后都卡在口径不一:有人拿提交接口返回的时刻当终点,有人把主机负载引起的波动记到设备头上,还有人只报一个平均值,把偶发的长尾整段抹平。这些读数彼此不能相减,也不能画在同一条趋势线上。

本专题的做法是先固定尺子。两路测量通道共用一只时钟发生器,每次开测前注入一次同步脉冲,把通道偏差测出来并从每组读数里扣掉。随后按起止界定、触发对齐、分布读数、预算分配、条件扰动、基线固化六拍推进:前一拍定义两端,后一拍解释差值,中间四拍分别处理形状、额度、扰动与回归。

十五个链路节点从预算总账一路排到回归闸门,覆盖矩阵扫描、去抖窗口、事件队列、取报告节拍、主机中断、报告拆包、应用分发、帧提交、光电测量台、分位统计、无线重传、调优取舍、场景门槛与基线冻结。每个节点各配六个视角,合起来九十篇节拍采样记录,按三十天逐日释放,每天三篇落在下方五栏里。

读数一律给三档:P50 描述常态、P95 描述偏慢一档、P99 描述最不走运的那几次,三者同表并附样本量。离群样本先标成因码,不静默截断尾部;档位、采样密度与剔除规则随分布存档,换任何一项都整批重取,不拿旧样本补新曲线。这样留下的记录,隔几个月仍能按批次号翻出来重做一遍。

0ms 光电零点P50 / P95 / P99共同时钟最坏路径叠加漂移带闸门每日三篇
90篇节拍采样记录
15簇链路节点
45张专属示波配图
198词去重时距词族

B0 · 端到端预算拆分 / BUDGET SPLIT(最坏路径相加)

矩阵扫描 去抖窗 事件队列 主机与驱动 应用分发 显示刷新
矩阵扫描 1.9 ms 去抖窗 1.3 ms 事件队列 2.4 ms 主机与驱动 1.7 ms 应用分发 1.5 ms 显示刷新 1.2 ms 合计 10.0 ms
CH1 / CH2 · 双通道时距示波Δt = 6.68 ms
图中显示两路信号:琥珀色零点为触点闭合,青色终点为像素亮度跨阈,中间为分段时距波形。
P50 / 常态4.6 ms
P95 / 偏慢8.3 ms
P99 / 最慢12.1 ms

波形按同一只时钟绘制:零点前为低平基线,零点后为阶跃与阻尼振铃,终点竖线取亮度跨阈时刻。三档分位数来自同一批样本,抖动带按 P99 减 P50 计算。

B2 / FIVE COLUMNS

今日时距采样 每天释放三篇 · 连续三十天

下方五栏按发布顺序展示最近归档的节拍采样记录。每篇都带独立的起止定义、双路对齐方式、三档时距读数表、九节点归因顺序与放行前五栏核对;点开可看完整正文与两幅专属示波配图。当天新发的三篇排在最前,历史记录顺次后移,已归档篇目保持可检索。

查看三十天释放排期 →
B3 / LINK NODES

十五个链路节点 点开看该段打点与复核要点

每一档节点都对应一组独立术语、六个切入视角与三档时距读数。节点顺序按一次按下的真实流向排列,不按重要程度排序;点开任意一格可读这一段的字段定义与失效条件。

N01端到端时延预算总账

先钉死零点与终点:触点闭合的光电跳变为零点,屏幕像素亮度跨过阈值为终点;分段额度按最坏路径相加,余量池独立留存。

N02矩阵扫描周期与首次命中

行扫描周期决定等待时间的上界,首次命中按行号分列记录,相位余量随按键发生时刻均匀分布,鬼影确认周期单独入账。

N03去抖窗口与触点稳定判据

去抖窗是唯一确定要花掉的时间,稳定判据写明连续采样次数,按下沿与释放沿分开设档,漏键率与误触率成对报告。

N04固件事件队列与排队等待

入队与出队两个时刻成对打点,溢出标记带前后队列深度,优先档由规则表给定,等待上界按满队列最坏轮次推算。

N05USB 轮询间隔与回报率

帧起点与报告就绪时刻画在同一时间轴,错过一帧要付整帧代价;切换间隔档位后整批重取,不跨档拼接分布。

N06主机协议栈与中断调度

空闲基线在每轮加压前先测,批量合并单列开关状态,核间迁移产生的大值单独成组,负载档写明并发任务内容。

N07HID 报告解析与驱动上报

报告长度逐档测量以找出台阶,冷启动首按单独成列,报告按类型分组,分发路径记录目标输入队列以防双峰混合。

N08应用层事件分发与合成

消息队列等待单独打点,焦点切换时刻在时间轴上标注,字符与游戏场景分列,事件丢弃单独计数以防高估体验。

N09帧提交与显示刷新对齐

终点取光电探头亮度跨阈,提交接口返回时刻仅作参考;扫描位置按当时行号记录,垂直同步相位单独分列。

N10双通道光电测量台

两路通道共用同一只时钟发生器,触发同步脉冲的校准值从每组读数扣除,高速摄像帧率决定可分辨的最小时间差。

N11分位数与抖动带统计

P50/P95/P99 三档同表给出,抖动带按 P99 减 P50 计算,样本量随分布保存,离群样本先标成因不静默截断尾部。

N12无线链路时延与重传

连接间隔档位随样本固定,重传次数按每次按下记录,唤醒首按单独分组,丢包窗口按时间片标注并与信道跳变联读。

N13预算重分配与收益递减

每次只改一个变量并逐级测量,边际增量低于测量分辨率即停手,功耗代价与收益同表,回退触发条件在调整前写定。

N14场景门槛与体感对齐

场景档在开测前选定,连续输入看间隔稳定性、单次触发看绝对时距,体感映射仅作解释,超窗样本即使少量也单列。

N15时延基线与回归闸门

基线版本与测量台固件、主机版本、线材、探头位置同时冻结,闸门阈值按历史漂移带给出,放行记录配变更清单。

B4 / CROSS LINKS

HID 全系专题 · 互链矩阵 十五页角度互补

本页只负责一次按下中间的毫秒链路。设备怎么选、报文字节怎么解、空中链路怎么测、产线工位怎么判、交付之后的工单怎么走,分别由下列专题承接;各页共用品牌与设备身份,但字段、证据与结论各自独立,不重复叙述。

B5 / CONSOLE

节拍控制台 档位、窗长与分位读数

左侧切换取报告节拍与去抖窗长,观察两端代价如何互相牵制;右侧是同一批样本在 P50、P95、P99 三档上的散点分布。所有默认读数由服务端直接输出,切换只改变高亮,不改动已留档的原始数值。

取报告节拍 / REPORT RATE

去抖窗长 / DEBOUNCE WINDOW5 ms
连击间隙28 ms
漏键率0.4%
误触率0.2%

窗长是唯一确定要花掉的时间:压低中位数会让触点抖动被计成两次按下。判据按件型设档,按下沿与释放沿分开,漏键率与误触率成对报告,只挑其中一个看,任何档位都能被说成最优。

分位数散点 / QUANTILE SCATTER

P50 P95 P99 SAMPLE 001 SAMPLE 030
P50 常态 4.6 msP95 偏慢 8.3 msP99 最慢 12.1 ms抖动带 = P99 − P50 = 7.5 ms
B6 / MOTION CAPTURE

影像记录 主播放器 + 五路监视器

五段影像分别对应零点捕获、矩阵扫描、分位读数、帧提交与基线复核。主画面与监视器内容一致,方便把一次按下拆成可逐帧回看的时间片;下方胶片条按起止、对齐、分布、分配、扰动、固化六拍给出关键帧位。

CH1 · 触点闭合与光电零点 · 0ms 起拍
01 · 矩阵扫描与相位桶
02 · 分位数与抖动带
03 · 帧提交与显示跨阈
04 · 基线与回归闸门
05 · 零点复核
F01 起止F02 对齐F03 分布F04 分配F05 扰动F06 固化
B7 / QUESTIONS

节拍问答 八条口径说明

下面这些疑问几乎都来自同一件事:把不同起止点、不同档位或不同样本量下得到的读数放在一起比较。逐条说明口径之后,再回头看趋势线,很多「变慢了」其实只是尺子换了。

为什么把终点定在像素亮度跨阈,而不是提交接口返回?

接口返回只说明这一帧已经交出去,画面还没扫到那一行时像素并未改变。把返回时刻当终点会系统性低估一到两帧,刷新率越高这个低估越不显眼。用光电探头对着目标区域测亮度,跨过设定阈值的那一刻才是链路真正的终点。

回报率从 125Hz 提到 1000Hz,为什么长尾没有按比例消失?

等待的相位结构变了,但重传、主机调度、应用队列与显示刷新这几段并没有跟着变。总预算是各段相加,只压其中一段会把瓶颈推到别处。正确做法是逐段打点,看 P99 落在哪两点之间,再决定往哪一段挪额度。

P99 为什么必须和样本量一起报?

样本量不足时,所谓 P99 其实只是那批样本的最大值,换一批就跳到别处。要让高百分位稳定,得先让每批样本数够,再看连续几批的 P99 是否收拢。任何一条没有样本数的百分位都不进基线。

离群样本能不能直接截断?

不能静默截断。焦点切换、信道跳变、后台抢占产生的孤立大值,往往正是用户能复述出来的那几次卡顿。做法是给每条超窗样本加成因码,成因不明的保留在分布里;删掉尾部会让抖动带凭空收窄,回归时再也对不上现场。

去抖窗是不是越短越好?

缩短窗长能立刻压低中位数,代价是触点抖动可能被当成两次按下,快速连击也可能被误吞。判据要按件型设档,按下沿与释放沿分开,漏键率与误触率必须成对报告,只挑其中一个看,任何档位都能被说成最优。

两路测量通道为什么必须共用一只时钟?

各自用本机计时,短时间看不出问题,跑上几千次之后漂移会自己爬进 P99。每次开测前注入一次同步脉冲,把通道偏差测出来并从每组读数扣除;校准值与原始读数分列保存,探头换位或换线之后要重新校准。

时间预算和售后工单、产线标定是不是同一套东西?

不是。这里处理的是一次按下中间那几十毫秒,打点位置、档位前缀与分位读数是全部依据;产线标定处理出厂前的工位判定,售后归零处理交付之后的工单流转。三者共用设备身份与批次号,但字段、证据与结论各自独立。

换一版固件之后怎么判断有没有变慢?

按历史漂移带给闸门阈值,不按某一次最好成绩给;基线连同测量台固件、主机版本、线材与探头位置一起冻结。重测时台位、线材、探头位置三项不动,放行记录与变更清单成对保存,才能把正常漂移与真实劣化分开。

B8 / INDEX & SCHEDULE

时距词族与三十天排期

词族按十五个链路节点分组,只在此列出各组代表词,其余长尾词分散进各篇标题、小节与元数据,不在落地页堆叠。下方三十格对应三十个自然日,每格三枚圆点代表当天释放的三篇采样记录,来自三个不同节点。

HID时延预算 HID端到端时延 HID总预算 HID分段额度 HID余量池 HID最坏路径 HID矩阵扫描 HID扫描周期 HID首次命中 HID相位余量 HID全扫帧长 HID行列寻址 HID去抖窗 HID稳定判据 HID连击间隙 HID漏键率 HID释放沿 HID去抖档位 HID事件队列 HID队列深度 HID入队时刻 HID溢出标记 HID优先档 HID等待上界 HID取报告节拍 HID回报率 HID帧起点 HID报告就绪 HID错过一帧 HID回报率档位 HID中断延迟 HID调度时隙 HID批量合并 HID负载档 HID核间迁移 HID空闲基线 HID报告解析 HID报告长度 HID报告拆包 HID输入报告 HID分发路径 HID解析耗时 HID消息队列 HID焦点窗口 HID输入法链
D01
D02
D03
D04
D05
D06
D07
D08
D09
D10
D11
D12
D13
D14
D15
D16
D17
D18
D19
D20
D21
D22
D23
D24
D25
D26
D27
D28
D29
D30
B8 / CLOSING

把尺子固定下来,读数才有意义

一次按下的中间那几十毫秒,拆开看是十五段各有打点位置的开销,合起来看是一条能被别人按同一只时钟重做的曲线。本专题九十篇记录不提供「最快」的承诺,只提供可回算的时刻列、可对照的分位数与可追溯的条件快照。若需要了解设备形态、协议结构、空中链路、产线工位或售后工单的口径,请从上方互链矩阵进入对应专题,各页角度互补而不互相替代。