キーボードの遅延とポーリングレートの解説
キーボードの遅延テストやポーリングレートのチェッカーを掲げるサイトは多くありますが、ウェブページがキーのイベントを受け取るのは、キーボード、USB や無線の接続、OS の処理がすべて終わった後です。このガイドでは、キーを押してから結果が見えるまでの遅延の内訳、ブラウザのタイミングから正直に言えること、本当の遅延を測るのに必要なものを説明します。
キーボードの遅延はどこで生まれるか
指から画面までにはいくつもの段階があり、それぞれが時間を加えます。
- キーの移動と作動:スイッチが反応するまでキーが沈みます。メカニカルスイッチではその位置は固定ですが、アナログ(磁気式など)キーボードでは調整できることがあります。
- スキャン:キーボードのコントローラーがキーマトリクスを繰り返し確認します。その頻度がスキャンレートです。
- デバウンス:接点のバウンドが複数の押下として報告されないよう、コントローラーが待つかフィルターをかけます。
- ポーリングと転送:USB では、パソコンがポーリングレートに従ってキーボードに新しいデータを問い合わせます。無線や Bluetooth の接続には、それぞれ独自のタイミングがあります。
- OS とアプリ:入力が処理され、プログラムに渡されます。
- 描画と表示:プログラムが新しいフレームを描き、モニターがそれを表示します。
エンドツーエンドの遅延は、これらすべての合計です。宣伝で使われる数値は、たいていその一部だけを表しています。
ポーリングレートを数字で理解する
ポーリングレートは、パソコンが USB キーボードからレポートを受け取る頻度です。125 Hz なら間隔は 8 ms、1000 Hz なら 1 ms、8000 Hz なら 0.125 ms です。レートが高いほど次のレポートまでの待ち時間は短くなりますが、短くなるのはその待ち時間だけです。スキャンレート、デバウンス、システム、ディスプレイはそれぞれの分の時間を加え続けます。また、ポーリングレートは、キーボード内部のコントローラーがどれだけ早くキーに気づくかについては何も示しません。
ブラウザに見えるもの
ウェブページはタイムスタンプ付きの keydown と keyup のイベントを受け取ります。そこから次のことを表示できます。
- 押してから離すまでの時間、連続する押下の間隔。チャタリングテストはこれでスイッチのバウンドを見つけます。
- 同時に押されているキー。同時押しテストと同じです。
- 正確なキーの値とコード。キーコード確認と同じです。
ページにわかるのは、イベントが届いた時刻だけで、実際にキーを押した時刻ではありません。さらに、タイムスタンプはプライバシー保護のためにブラウザによって丸められ、ときには大きく丸められます。システムが複数の入力イベントをまとめて渡すこともあります。そのため、キーイベントのタイムスタンプはキーボードの遅延の測定値ではありません。
ウェブサイトでキーボードのポーリングレートを保証できない理由
マウスを動かすとレポートが連続して送られるので、イベントの間隔からマウスのレートをおおまかに推定できます。マウスのポーリングレートテストがしているのはこれです。キーボードはキーの状態が変わったときにレポートを送り、人が1秒に1000回近くキーを押すことはできません。時間を計れる一定の流れがないため、ブラウザにはキーボードのポーリングレートを推定する材料がありません。文字を打っただけで「あなたのキーボードは 1000 Hz です」と表示するサイトは、推測しているにすぎません。確かな情報源は、キーボードの専用ソフトの設定か USB 解析ツールです。
作動点とラピッドトリガー
アナログキーボードの作動点(キーが反応するまでの押し込み量)とラピッドトリガー(キーが戻り始めた瞬間に離したと判定する機能)は、キーボード内部のセンサーで測られます。ブラウザが受け取るのは結果としての押下と離した操作だけで、キーの位置ではないため、ウェブページでは作動距離を測れません。センサーの値を直接読むキーボードの専用ソフトを使ってください。ブラウザのテストで確認できるのは、押下と離した操作が期待どおりのタイミングで届くかどうかです。たとえばキーボードテストで素早くタップして確かめられます。
本当の遅延を測る方法
本当のエンドツーエンドの遅延を測るには、パソコンの外にある基準が必要です。キーと画面の両方を撮影するハイスピードカメラか、押下と画面の変化を検出する専用の遅延測定器です。結果はフレームやポーリングのタイミングによってばらつくので、何度も押して撮影・記録し、平均を取ってください。カメラを使う場合は次の点に注意します。
- どのキーボードでも、同じ場面、ディスプレイ、リフレッシュレート、設定を使う。
- しっかりと一定の強さで押す。
- キーが底まで沈んだ瞬間、またはスイッチが作動するとわかっている瞬間から、画面に最初の変化が見えるまでのフレームを数える。
キーボードを公平に比べる
- 一度に変えるのは1つだけにします。どのキーボードでも、同じポート、ケーブル、パソコン、ディスプレイ、アプリを使います。
- 有線での結果は、同じキーボードの無線や Bluetooth モードについては何も教えてくれません。モードごとに別々にテストしてください。
- 多くのサンプルを記録し、平均だけでなく範囲も比べます。
- ブラウザのタイミングを含め、ウェブサイトが示す単一の数値は、測定値ではなく目安として扱ってください。
よくある質問
ブラウザでキーボードの遅延を測れますか?
本当の遅延は測れません。ページにわかるのはキーイベントが届いた時刻で、キーを押した時刻ではなく、タイムスタンプも丸められています。遅延の測定には、ハイスピードカメラや専用の測定器などの外部の基準が必要です。
キーボードのポーリングレートはどう確認しますか?
キーボードの専用ソフトや設定を見てください。たいていそこで確認・変更できます。キーは一定の流れでレポートを送らないため、ウェブサイトが入力からキーボードのポーリングレートを確実に推定することはできません。
8000 Hz は 1000 Hz より良いのですか?
遅延の一部、ポーリングの間隔を最大 1 ms から最大 0.125 ms に短くします。違いを感じるかどうかは、チェーンのほかの部分次第で、そちらのほうがずっと大きな時間を加えることがよくあります。
このサイトにキーボードの遅延テストはありますか?
ありません。意図的にそうしています。TestDock のキーボードツールは、ブラウザが確実に見られるものを測ります。どのキーが届くか、同時にいくつ届くか、チャタリングのための押下のタイミングです。遅延をきちんと測る方法は、このガイドで説明しています。
関連するテスト
- キーコード確認任意のキーについて、ブラウザが報告する key、code、keyCode、location、修飾キー、リピートを表示します。
- キーボードテストすべてのキーを押して反応を確認できます。ANSI・ISO・Mac 配列に対応しています。
- 同時押しテスト複数のキーを同時に押して、キーボードがどの組み合わせまで認識できるかを確認できます。
- チャタリングテスト2回入力されるキーを見つけます。入力ごとに時間を計り、指では不可能な速さの連続入力を検出します。
- テンキーテストテンキーのすべてのキーを押して反応を確認できます。Num Lock の状態も表示します。
- Mac キーボードテストMac のキー名で表示するキーボードテスト。MacBook のキーボードと Magic Keyboard に対応しています。
- スペースキー連打5~60秒でスペースキーを何回押せるか計測します。押しっぱなしはカウントされません。
- Chromebook キーボードテストChromebook の配列で表示するキーボードテスト。検索キー、最上段のキー、矢印キーを確認できます。