マウス遅延テスト
マウスクリックの応答性を測定します。各クリックにはブラウザがイベントを生成した瞬間と、このページのハンドラが実行された瞬間の2つのタイムスタンプが記録され、その差からイベント配信の遅延がわかります。また、パッドが切り替わったときにどれだけ速くクリックできるかを短い反応トライアルで記録します。パッドの上でマウスを動かすと、ブラウザが受け取っているリアルタイムのイベントレートを確認できます。
クリックしてトライアルを開始
パッドが切り替わったら、できるだけ速くクリックしてください。すべてのクリックはイベントからハンドラまでの遅延も記録します。
直近のクリックレイテンシ
低いほど良好このテストの仕組み
すべてのポインターイベントには、ブラウザがそれを生成した瞬間のtimeStampが付与されています。クリックがハンドラに届くと、performance.now()を読み取り、両者の差を計算してイベントからハンドラまでの遅延を表示します。これは、クリックが入力スタックとイベントループを通過してこのページが反応できるようになるまでにかかった時間です。これとは別に、パッドは反応トライアルを実行します。ランダムな間隔で待機した後に状態を切り替え、その切り替えとクリックの間の差をクリックレイテンシとして記録するので、試行ごとに比較できます。移動レートの表示は、ポインター移動イベントが毎秒何回届いているかを数えたもので、ブラウザにカーソルの移動が伝えられる頻度を反映しています。
マウスのレイテンシの原因
- スイッチのデバウンス: ファームウェアは押下後、接点が安定したことを確認するために数ミリ秒待機します。これにより、すべてのクリックに小さく一定の遅延が加わります。
- ポーリングレート: 125Hzのマウスは最大8ms間隔でしか報告できず、1000Hzのマウスは1ms間隔で報告できます。レートが低いほど、次の報告タイミングまでクリックが保留される可能性があります。
- 接続方式: 有線USBは直接接続ですが、ワイヤレスは無線のホップが加わり、低電力または混雑した2.4GHz帯の接続はジッターが生じることがあります。ただし優れた最新のドングルは有線に近い性能です。
- USBとOSのスケジューリング: ホストは一定のスケジュールでデバイスをポーリングし、その後OSがイベントをブラウザに届けるために、起床・キューイング・ディスパッチを行う必要があります。
- ブラウザとページの負荷: メインスレッドが混雑していたり、ページが重かったりすると、実際にハンドラが実行されるタイミングが遅れます。これはまさにイベントからハンドラまでの遅延として現れるものです。
マウスレイテンシ・入力遅延・ポーリングレートの違い
これら3つは、同じ連鎖の異なる部分を測定しています。ポーリングレートは、マウスが位置とボタンの状態を報告する頻度をヘルツで表したもので、マウスポーリングレートテスターは移動イベントの間隔からこれを推定します。ここで測定しているマウスレイテンシは、クリックがページで処理可能なイベントに変わるまでの速さです。入力遅延は、あなたの操作から画面上の変化が見えるまでのエンドツーエンドの遅延全体を指し、ディスプレイ自体の応答速度やリフレッシュも含まれます。この反応とディスプレイを合わせたループについては、入力遅延テスターが対象です。ポーリングレートを上げるとマウスレイテンシの一因は減りますが、レイテンシとエンドツーエンドの入力遅延はOS・ブラウザ・モニターにも左右されます。
マウスのレイテンシを減らす方法
- Bluetoothではなく、有線接続、または高品質で低レイテンシの2.4GHzドングルをマウスの近くに配置して使用してください。
- センサーと接続が安定してサポートできるなら、マウスソフトウェアでポーリングレートを上げてください(500Hzまたは1000Hz)。
- メーカーのソフトウェアにその設定がある場合は、ダブルクリックのリスクとのバランスを取りながら、クリックのデバウンス時間を下げてください。
- ドライバーとファームウェアを最新に保ち、CPUやUSBバスを占有するバックグラウンドアプリを閉じてください。
- 電源のないハブや長い延長ケーブルを介さず、マウスをコンピュータに直接接続してください。
