
mkeys式遅延計測プログラムの紹介
投稿日 :2025-01-27
昔はあまり重視されていなかったキーボードも、今や1ms、0.01mmを切る高性能を謳ったキーボードばかりに。
このサイトでもレビュー内で性能面に「数値」で触れていく必要があると感じました。
最近ではMMstudioなどからデバイスの遅延計測機が販売され、多くのレビュワーが採用しています。
当サイトでは今後、それらと比べてやや簡易的ではあるものの、
逆に言えばより実使用に近い入力遅延値を計測するプログラムを使用していきます。
この記事では、その計測方法について紹介していきます。
2月2日時点、記事内で使用しているプログラムのアップデート版が完成しました。
詳細はこちらhttps://x.com/mkeys_blog/status/1885992927593373931

1.入力遅延について
まずは入力遅延について見ていきます。

1.人間
モニターに表示された情報を元に、人間がキーボードを操作します。 ここでは「操作する人の反応速度」が入力遅延の一部になります。
2.キーボード
キースイッチが押下されたキーボードはMCUで信号処理を行った後、PCへ入力信号を送信します。
ここでは「キーボードの処理遅延・PCへの伝送」が入力遅延の一部になります。
アクチュエーションポイントが浅い、キーのスキャンレートが高いなどの場合は
MCUでの処理の開始タイミングが早くなり、
キーボードのポーリングレートが高い場合は、pcとの通信回数が増えて伝送も早くなります。
キーボード自体の性能が大きく影響するため、最近市場に出回っている遅延測定器はここの数値を計測しています。
3.PC内での信号処理
PCはUSBポートから入力信号を受け取り、信号を処理、ゲーム内に反映させます。
ここでは書いてある通り、「PC内での信号処理、アプリケーションへの伝達」が入力遅延の一部になります。
(マシンスペックなど諸々の影響は受けますが、windows環境では15ms程度らしい?)
4.モニターへの信号送信・表示
PC内での処理が終わった後、モニターにその結果が反映されるまでの時間です。
ここでは「モニターへの信号伝送・処理&表示」が入力遅延の一部になります。
高リフレッシュレート、低表示遅延を謳うモニターなどではより早く表示され、単純要素のみの計算でも
60Hz=16msの遅延、240Hz=4msの遅延となります。
1msの遅延さえも気にしてキーボードを買い替える場合、まずはこちらの改善をした方が良いかもしれません。
また、ここで表示された情報を元に人間が操作を行い、循環していきます。
ここで、オンラインゲームなどでネットワークに接続する場合、
この図とはズレてきますが、キリがないので一旦忘れます。
2.遅延計測プログラムの紹介
長くなりましたが、本題の遅延計測プログラムの紹介です。
このプログラムではキープッシュ時の遅延計測の後、リリース時の遅延も測定します。
- 計測開始
- ランダム秒後に画面が切り替わると同時にタイマースタート。
- 画面の変化を見てキーをプッシュ(リリース)。
- キーの信号を受け取ったらタイマーストップ。
- 計10回繰り返し計測
- 計測終了後、データ統計とともに他データとの比較グラフの出力
単純な構造ではありますが、さらに詳しく解説していきます。

このプログラムでは、画面の変化からキーの入力を受け取るまでの遅延、
初めの説明で言うところの、項番1~項番3までの遅延を計測します。
また、予想外のタイミングでキー入力を要求するため、人間の反応速度やモニターの表示遅延、キー荷重、オンとオフが切り替わる際のデッドゾーン等のいくつかの雑要素を含みます。
しかしこれは、ゲーム等をする上で当たり前に存在するとともに避けられない要素であるため、ここでは許容。
(一般人とプロなどを比較すると反応速度に80%程の違いが出ることもあるようだが、あくまで私の一般人レベルの反応速度での検証になります。
参考:https://nanzan-u.repo.nii.ac.jp/records/4122)
また、データ単体ではなく統計として見たり、他のキーボードとの比較を行ったりして相対的にデータを比較します。
このプログラムではこれらを利用して、より実際の遅延に近い、絶対値に近いデータを提供します。
- プログラム実行時のタスク優先度をリアルタイムに設定
- キー入力の検知にDirectInputを使用
- 軽量なプログラムで1ms単位で検知・計測
3.実際に使用



計測が終了すると、このようなcsvファイルが出力される。
ここでキーボードごとのデータの平均値、最大値、最小値、標準偏差を1ms単位で比較できる。

このようにグラフで個々のデータを比較することも可能。
made68は意外と遅延が多い部類だとか、k64h3は0.04mmと0.1mmでしっかりと違いが出るだとか。
そして、画像にはありませんが、リリース時の遅延ではmade68が少し優秀な傾向が見られました。
もちろん人間の反応速度が影響する分、同キーボード同条件の中でもデータにバラツキは出るが、おおよその傾向は把握できるし、比較もできる。
ただ、60Hzと240Hzモニターなどの環境の違い等は、当サイトではできるだけ抑えて計測を行います。
今後、このようにして具体的な数値を用いた遅延比較を通じて、価値ある情報を提供していきます。どうぞご期待ください。

※現時点ではソースコードの配布等はしませんが、将来的にもっと機能的にアップデートしてgithubなどで公開したいと思っています。
moyashi【admin】
2025/01/30-00:36こちらの計測方法ですが、 あくまで人間の反応速度を含んだ数値であり、 計測の度にばらつきが生じることをご了承ください。