鍵盤延遲:延遲從哪來,又是怎樣測出來的

鍵盤延遲是從手指開始按下按鍵,到鍵盤把這次按鍵傳送給電腦之間的時間。它在四個環節中累積:按鍵行程、鍵盤掃描按鍵、防抖和 USB 輪詢。沒有任何網站能測出鍵盤延遲,因為瀏覽器要等鍵盤發出按鍵之後才會得知。評測者用電磁鐵按下按鍵,再用 USB 分析儀記錄這次按鍵離開鍵盤的時間。要降低鍵盤延遲,可以使用更短的觸發鍵程、最高的回報率,以及不會讓按鍵重複輸入的最低防抖設定。

鍵盤測試

一次按鍵在電腦收到之前要在哪裡等待

  1. 按鍵行程按鍵向下移動到開關觸發的位置
  2. 掃描鍵盤晶片逐行檢查按鍵網格
  3. 防抖等開關觸點停止彈跳,或者忽略彈跳
  4. USB 輪詢按鍵要等到電腦下一次向鍵盤詢問新輸入

合起來:鍵盤延遲

網頁只能從這裡開始計時

電腦和螢幕 遊戲使用這次按鍵並繪製一幀,螢幕再顯示出來:這是輸入延遲的其餘部分

測量鍵盤的評測者只計算前四個環節:從有東西碰到按鍵的那一刻,到 USB 資料包離開鍵盤的那一刻。

延遲從哪來

回報率換算成毫秒

兩次輪詢之間的時間等於 1,000 ms 除以回報率。平均來說,一次按鍵要等這段時間的一半。

回報率換算成毫秒
回報率輪詢間隔平均等待
125 Hz8 ms4 ms
250 Hz4 ms2 ms
500 Hz2 ms1 ms
1000 Hz1 ms0.5 ms
8000 Hz0.125 ms0.0625 ms

從 125 Hz 提高到 1,000 Hz,平均能節省 3.5 ms。實測鍵盤之間的差距遠比這大:2017 年 Dan Luu 測了 21 款鍵盤,結果在 15 到 60 ms 之間,其中兩款遊戲鍵盤並不比其他鍵盤快。

鍵盤延遲是怎樣測試的

為什麼沒有網站能測試鍵盤延遲

瀏覽器要等鍵盤發出按鍵、電腦再把它轉交過來之後,才會得知這次按鍵,所以本頁描述的所有環節,在網頁開始計時之前就已經發生了。從出現訊號到你按下按鍵的計時測試,測的是你的反應,而反應所需的時間遠比鍵盤長。瀏覽器能檢查的,是每個鍵是否都能被識別、能同時按下幾個鍵(用鍵盤測試),以及按鍵是否會重複輸入(用鍵盤雙擊測試)。

如何降低鍵盤延遲

線性軸、段落軸和有聲軸有什麼區別,以及廠商給出的觸發鍵程和觸發壓力,見鍵盤軸體。

資料來源:Dan Luu(英文),鍵盤延遲;RTINGS(英文),鍵盤延遲測試方法;LTT Labs(英文),Labs 如何進行鍵盤測試;QMK(英文),防抖演算法;Wooting(英文),如何設定 Rapid Trigger;OSLTT(英文),開源延遲測試工具。