マウスの性能をちゃんと測りたくて、計測ツールを作りました

マウスの「ポーリングレート」って何?

マウスは一定の間隔でパソコンに「今ここにいるよ」と位置情報を送り続けています。この報告の頻度がポーリングレートで、単位はHz(ヘルツ)です。

1000Hzなら1秒間に1000回、8000Hzなら8000回。数字が大きいほど動きが素早く正確に伝わります。最近のゲーミングマウスはこの8000Hzを売りにしているものが増えてきました。


でも、本当に出てますか?

「じゃあ計測してみよう」とブラウザで検索すると、いくつかのWebツールがヒットします。手軽でいいのですが、試してみると数値がセッションごとにけっこうズレることに気づきます。

これはツールが悪いわけではなく、ブラウザという仕組み自体に限界があるからです。

ブラウザ計測が抱える2つの壁

① マウスの動きをまとめて処理してしまう

ブラウザはパソコンの画面描画(多くは60〜165Hz)に合わせてマウスのイベントをまとめて処理する設計になっています。8000Hzのマウスから1秒間に8000回のパケットが来ていても、ブラウザ側が「1フレーム分まとめて渡すね」という動きをするため、実際より大幅に低い数値が出てしまうことがあります。

② 時刻の精度が意図的に落とされている

セキュリティ上の理由から、主要なブラウザは時刻の計測精度を意図的に下げています。8000Hzのマウスは0.125ミリ秒刻みで動いているので、その精度では正確に測りきれません。


そこで、Windowsの機能を直接使うツールを作りました

Polling Rate Checker はブラウザを経由せず、WindowsのRaw Input APIというOSレベルの機能を通じてマウスからのパケットを直接受け取ります。8000Hzのマウスからは8000回、ちゃんと受け取ります。

時刻の計測も、CPUが持つ非常に高精度なタイマー(QPC)を使っています。0.125ミリ秒の世界でも十分に対応できる精度で、ブラウザの制限とは無関係です。

「起動してマウスを動かすだけで計測が始まる。インストール不要。」

使い方はシンプルです

  1. PollingRateChecker.exe を起動する

  2. マウスを動かす

  3. 数秒後に数値が表示される

それだけです。インストール不要、ランタイム不要の単一ファイルなので、ダウンロードしてすぐ使えます。

画面上部の黒いバーに大きくHz数が表示されたら計測中です。右上に「● MEASURING」のバッジが出ていることも確認してください。

上部の黒いバーにリアルタイムのHz数が表示される。「● MEASURING」が出ていれば計測中。

計測するときの注意点

計測結果はPCのそのときの状態に影響されます。同じマウスでも、バックグラウンドで重い処理が走っているときと何も起動していないときでは、数値が変わることがあります。

毎回リセットしてから測る

計測を続けていると古いデータが蓄積されて、今の状態が見えにくくなります。条件を変えたら必ずRキーでリセットしてから数秒待って数値を確認してください。

同じ条件で揃える

たとえばこういった場面で数値が変わることがあります。

  • 何も起動していない素の状態

  • ブラウザやDiscordなどを開いた状態

  • ゲームをプレイしながら計測したとき

どれが悪いということではなく、比較するときは条件を揃えることが大事です。「USBポートを変えたら改善したか」を見たいなら、どちらも同じアプリの起動状態で測らないと正しく比較できません。

比較タブのメモ欄に「ゲーム起動中」「アイドル時」などと書いておくと、あとから見返したときに便利です。


各数値の見方

メトリクスタブ。数値の意味は以下で説明します。

一番重要:P50 Interval(ピーごじゅう インターバル)

P50とは「真ん中の値」のことです。

たとえば100回パケットが来たとき、その間隔を短い順に並べて50番目にあたる値がP50です。たまに発生する異常な遅延(スパイク)に引っ張られないので、マウスの実態をいちばん正直に反映します。

目安はこちらです。

ポーリングレートP50の正常値
1000Hz約1.000ms
2000Hz約0.500ms
4000Hz約0.250ms
8000Hz約0.125ms

P50が0.500ms前後なら2000Hzとして正常動作している。

Est. Rate(推定レート)

P50の値から「これは何Hzのマウスか」を自動で判定して表示します。P50だけ見てもピンとこない場合は、こちらを先に確認するのがわかりやすいです。

Current Hz(現在のHz)

直前の1パケット分だけを見た瞬間値です。ノイズの影響を受けやすく、数値が大きく揺れることがあります。傾向を見るのには向いていないので、P50かEst. Rateを参考にしてください。

Top 5% Hz

「速かった側の上位5%」のHz換算です。マウスが瞬間的に出せる最速レートの目安になります。

P95 / P99 Interval

P95は「100回中95回はこの時間以内に届いた」という上限の目安です。P99はさらに厳しく99回分。どちらもP50の2倍を超えてくると、散発的な遅延が起きていると考えていいです。

Jitter P95-P5(ジッター)

パケット間隔のばらつき幅です。P95とP5(速い側の上位5%)の差で計算しています。

カタログ通りのHz数が出ていても、このジッターが大きいと操作感がガタつく原因になります。小さいほど安定しています。

Jitterはばらつきの幅。P95がP50の2倍を超えていたら要注意。

Spikes 2ms+ / Spikes 10ms+(スパイク)

2ms以上、または10ms以上の間隔が何回あったかのカウントです。

2ms+は「引っかかり感」として感じる程度、10ms+は「明らかにカクッとした」と感じるレベルの遅延です。10ms+は0件が理想です。

Pkt Drops(パケットドロップ)

推定の欠落パケット数です。間隔が正常値の約1.8倍を超えたとき、「この分は届いていない」と推定してカウントしています。USBポートやケーブルの品質が悪いと増える傾向があります。


判定バナーの見方

画面中段にある横長のバナーが、計測結果を自動で判定します。

緑なら正常。Est. Rateに対してP50・Jitter・Spikes10msを自動でチェックしている。

緑(安定) → Est. Rateに対してP50・Jitter・10ms超えスパイクがすべて正常範囲内です。

黄(要注意) → どれかひとつでも基準を外れています。バナーにどの数値が問題かが表示されるので、確認してみてください。

黄色のときは問題のある数値が表示される。この例ではJitterが基準を超えている。

グラフ・ヒストグラムの読み方

グラフは直近の波形、ヒストグラムは分布の全体像を示す。

Intervalグラフ(折れ線)

直近300パケット分の間隔を時系列で表示しています。

黒い線が正常範囲、赤い線は2ms以上の遅延が発生した箇所です。赤い線が頻繁に出る場合は、USBポートの変更や電源管理の設定を見直してみる価値があります。

縦軸のスケールはP95の1.5倍で自動調整されるため、スパイクが多い環境でも山が潰れません。

赤い線がスパイク。散発的なら許容範囲だが、密集していたら要確認。

Intervalヒストグラム(棒グラフ)

全パケットの間隔がどこに集中しているかを分布で示しています。

山が左に集まっているほど安定しています。色の意味はこちらです。

  • 黒系 → 正常範囲

  • 黄色 → 1ms以上の間隔

  • → 2ms以上の間隔

  • → それ以上の外れ値

青い点線はP50の位置を示しています。山の頂上とP50がほぼ一致していれば、計測が安定しています。

理想的な分布。山が左に集中していてP50マーカーと一致している。

比較タブの使い方

「USBポートを変えたら改善するの?」「電源管理をOFFにすると効果ある?」こういった疑問を検証するのが比較タブです。

比較タブ。条件を変えるたびにスナップショットを保存して並べて比較できる。

自動スナップショット

30秒ごとに自動で計測値が仮保存されます。タブに「比較 ●」と通知が出たら、「✓ 保存」を押すと比較リストに追加されます。「✗ 破棄」を押せば捨てられます。

Sキーを押せばいつでも即時保存できます。

メモ欄を活用する

保存前にメモ欄に条件を書いておくと、あとから見返したときに何の計測だったかわかります。

例:USB 3.0ポート / 電源管理OFF / ゲーム起動中

比較テーブルの見方

緑が良好、赤が要注意。同じ列の中で相対的に色付けされるので、どの条件が一番良かったか一目でわかる。

色付けは同じ列の中での相対評価です。一番良い値が緑、一番悪い値が赤になります。P50・P95・Jitter・Dropsはすべて小さいほど緑になります。

最大8件まで保存できます。


ダウンロード

GitHub Releases からダウンロードできます。
Releases · ytty-pc/PollingRateChecker

PCゲーム遅延最適化ツールも公開しています。
https://ytty-pc.github.io/lateregtool/



いいなと思ったら応援しよう!