Skip to main content

鍵盤延遲測試.

透過測量快速按鍵事件之間的抖動,估算你鍵盤的輸入時間一致性 — 並非真正的硬體延遲。

按鍵間隔分佈

連續 keydown 之間的間隔(毫秒)
0ms25ms50ms75ms100ms+

時間統計

平均按鍵間隔— ms
平均處理時間— ms
平均按壓時間(按下→放開)— ms
擷取事件數0

一致性參考標準

< 1 毫秒優秀 — 非常穩定
1–2 毫秒非常好
2–4 毫秒略有變動 — 大多數環境下屬正常
4–8 毫秒較明顯 — 請檢查背景負載
8 毫秒以上偏高 — 可能是無線、USB 集線器或 CPU 負載造成

測量前請先檢查這些項目

  • 先以有線方式測試無線接收器與藍牙都會增加自身的延遲與抖動;先以有線測試,再另外比較無線表現,才能看出差異。
  • 關閉背景程式繁忙的 CPU 會延遲瀏覽器本身處理事件的速度,這會在測試中呈現為與你的鍵盤毫無關係的抖動。
  • 以穩定的節奏打字或連續按鍵你自己不穩定的節奏,看起來會與硬體抖動一模一樣 — 盡量保持平順、一致的節奏,或以固定速度滑過按鍵。
  • 留意事件數量只按幾個按鍵無法得到穩定的讀數 — 抖動估算值通常要在累積數百次事件後才會穩定下來。

如何測量你的輸入時間一致性

  1. 1
    聚焦擷取方框點擊上方方框,讓它開始監聽 keydown 與 keyup 事件。
  2. 2
    打字或連續按鍵輸入一句話,或以穩定的節奏滑過字母鍵區,持續至少 10 到 15 秒。
  3. 3
    查看抖動值與判定結果觀察估算抖動值、平均間隔與白話文判定結果即時更新;按下重設即可開始一次乾淨的測試。

鍵盤延遲究竟是什麼?

「鍵盤延遲」通常是指按下實體軸體到字元或動作出現在螢幕上之間的時間。網頁只能看到它的 JavaScript 接收到鍵盤事件的那一刻 — 在那之前的一切(軸體本身、控制器、USB/藍牙傳輸、作業系統的輸入處理堆疊)都是看不見的。因此,這個工具不提供單一的延遲數值,而是測量你的輸入時間一致性:穩定、低抖動的按鍵間隔代表鍵盤到瀏覽器之間有一條乾淨的路徑;較大且不規則的間隔則代表有某個環節 — 通常是無線連線、USB 集線器,或背景 CPU 負載 — 正在增加延遲。

這個工具會為瀏覽器傳來的每一個 keydown 與 keyup 事件加上時間戳記,並比對 event.timeStamp 與 performance.now()。它會分析連續 keydown 事件之間的間隔,並計算這些間隔的變動程度(標準差,顯示為抖動值),而不是只依賴單一次的間隔。由於瀏覽器基於安全考量會刻意粗化並抖動這些時間戳記,而你按鍵軸體與瀏覽器事件之間的真實延遲又是 JavaScript 看不到的,請將結果視為一種相對的一致性指標 — 而非實驗室等級的延遲量測。

什麼時候這項測試能派上用場

新的無線鍵盤

比較它在無線模式下的抖動值與有線連線的差異,看看無線連線本身增加了多少延遲。

診斷「延遲感」明顯的打字體驗

如果打字感覺不太一致,較高的抖動值讀數有助於確認這是時間問題,而不是漏掉了某個按鍵。

競技遊戲前的檢查

在比賽前,於關閉背景程式的情況下,確認你的遊戲設定具備穩定、低抖動的基準表現。

延遲與時間術語詞彙表

抖動(Jitter)
連續時間測量之間的變動程度;在這裡,是指按鍵事件之間的間隔有多不穩定,而非維持恆定。
輸入延遲
實體動作與電腦記錄該動作之間的延遲 — 在硬體層級對瀏覽器而言是不可見的。
去彈跳(Debounce)
過濾開關彈跳的韌體延遲,可能會為每次按鍵增加一段微小但固定的延遲。
回報率
鍵盤向電腦回報狀態的頻率;較低的回報率會增加延遲,也可能增加抖動。
篩選鍵 / 緩慢按鍵
一項作業系統無障礙功能,會刻意延遲或忽略快速的按鍵輸入,在這裡會呈現為極高的處理時間或抖動值。

常見問題

瀏覽器真的能測量鍵盤延遲嗎?

無法直接測量。真正的鍵盤延遲,是實體軸體閉合到電腦對此做出反應之間的延遲 — 這段過程會經過鍵盤的控制器、USB 或無線傳輸,以及作業系統,瀏覽器才終於看得到一個 KeyboardEvent。JavaScript 完全無法存取這些環節。這個工具實際測量的是時間一致性:你的按鍵事件到達的間隔是否均勻。這是一個有用的替代指標 — 乾淨、低延遲的路徑往往會產生小而穩定的間隔 — 但它無法取代專門的硬體延遲測試工具。

多少的抖動值算好?

粗略來說,在穩定打字或連續按鍵的情況下,抖動值低於約 1–2 毫秒相當一致 — 這是良好的有線鍵盤,且沒有其他程式與它競爭 CPU 時間時的典型表現。2–4 毫秒很常見,通常也不太會察覺。若超過約 4–8 毫秒,或數字在每次測試之間跳動不定,則代表有某個環節 — 通常是無線連線、USB 集線器,或背景負載 — 正在增加不穩定的延遲。

為什麼我的無線鍵盤抖動值比較差?

無線鍵盤(藍牙或 2.4GHz 接收器)多了一段無線傳輸,而且許多型號還有省電模式,回報頻率較低、也較不規律,不如有線連線穩定。可以將同一支鍵盤先接上有線(若支援的話),再切換到無線模式,前後測試比較,就能看出無線連線本身增加了多少延遲。

為什麼關閉背景程式會改變測試結果?

這項測試在你瀏覽器的 JavaScript 引擎中執行,只有在作業系統分配時間給瀏覽器分頁時,它才能處理鍵盤事件。繁忙的 CPU — 大量的背景下載、另一個分頁在執行繁重任務、防毒軟體掃描 — 都會延遲這個排程,而這個延遲會以額外的抖動與處理時間呈現出來,但這其實與你鍵盤的硬體毫無關係。

究竟是什麼造成鍵盤輸入延遲?

有好幾個因素會疊加起來:較低的 USB 回報率(鍵盤只有每隔幾毫秒才回報一次)、韌體的去彈跳延遲(過濾軸體彈跳)、無線鍵盤的傳輸環節、像篩選鍵或緩慢按鍵這類刻意延遲輸入的無障礙功能,以及最後你螢幕本身的輸入到顯示延遲。這個工具能透過抖動值暗示這些綜合效應,但無法區分究竟是哪一個單一因素造成的。

這和滑鼠或螢幕的輸入延遲測試是同一回事嗎?

不是 — 概念相同(測量一致性而非真正的硬體數值),但這個工具只監聽鍵盤事件。滑鼠的點擊到游標測試,或螢幕的輸入延遲測試,需要不同的量測方式(指標事件,或是對著實體面板的光電二極體),並不是這個頁面所測量的內容。

關於準確度的說明 — 這是一致性檢查,而非實驗室等級的量測

瀏覽器無法測量真正端對端的鍵盤延遲:從手指按下實體軸體,到作業系統將 KeyboardEvent 交給這個頁面之間的延遲,完全發生在 JavaScript 看不到的地方,而且瀏覽器還會刻意粗化並抖動它所公開的時間戳記(這是為了防範計時攻擊的刻意設計)。你在這裡看到的 — 平均間隔、抖動值與處理時間 — 是一項「相對」指標,用來呈現你輸入時間的穩定程度,適合用來比較有線與無線、關閉背景程式前後,或同一台機器上不同鍵盤之間的差異。它無法取代專門的硬體延遲測試工具或示波器。若要得到最乾淨的讀數,請使用有線連線、關閉背景程式,並以穩定的節奏打字或連續按鍵。