Tastaturlatenz: Woher die Verzögerung kommt und wie sie getestet wird
Tastaturlatenz ist die Zeit von dem Moment, in dem dein Finger eine Taste zu drücken beginnt, bis zu dem Moment, in dem die Tastatur diesen Druck an den Computer gesendet hat. Sie entsteht an vier Stellen: beim Tastenweg, bei der Abtastung der Tasten durch die Tastatur, beim Debounce und beim USB-Polling. Keine Website kann sie messen, denn ein Browser erfährt von einem Tastendruck erst, nachdem die Tastatur ihn gesendet hat. Tester nutzen einen Hubmagneten (Solenoid), der die Taste drückt, und einen USB-Analyzer, der aufzeichnet, wann der Druck die Tastatur verlässt. Um sie zu senken, nutze einen kürzeren Auslösepunkt, die höchste Polling-Rate und die niedrigste Debounce-Einstellung, bei der Tasten noch nicht doppelt schreiben.
Wo ein Tastendruck wartet, bevor der Computer ihn bekommt
- Tastenwegdie Taste bewegt sich bis zu dem Punkt nach unten, an dem der Schalter auslöst
- Abtastungder Chip der Tastatur prüft das Tastengitter, Zeile für Zeile
- Debouncedie Tastatur wartet, bis der Kontakt des Schalters nicht mehr prellt, oder ignoriert das Prellen
- USB-Pollingder Druck wartet, bis der Computer die Tastatur das nächste Mal nach Neuigkeiten fragt
Zusammen: die Tastaturlatenz
Erst hier kann eine Webseite ihre Uhr starten
Computer und Bildschirm das Spiel verarbeitet den Druck, berechnet ein Bild, und der Bildschirm zeigt es an: der Rest deines Input-Lags
Woher die Verzögerung kommt
- Tastenweg. Nichts passiert, bevor die Taste ihren Auslösepunkt erreicht. Mit 240 Bildern pro Sekunde gefilmt, brauchte ein normaler Tastendruck 4 bis 8 Bilder, um ganz nach unten zu kommen, und der Weg allein kann leicht 10 ms ausmachen. Die schnellste Tastatur in diesem Test hatte auch den mit Abstand kürzesten Tastenweg.
- Abtastung. Die meisten Tastaturen verdrahten ihre Tasten in einem Gitter und prüfen es Zeile für Zeile. Eine Tastatur, die langsam abtastet, bemerkt deinen Druck unter Umständen erst einige Millisekunden, nachdem der Schalter geschlossen hat.
- Debounce. Ein Schalterkontakt prellt kurz, wenn er schließt. Die Tastatur meldet den Druck entweder sofort und ignoriert das Prellen, oder sie wartet, bis sich der Kontakt beruhigt hat. In QMK, der Open-Source-Firmware, die auf vielen Custom-Tastaturen läuft, beträgt die Standard-Debounce-Zeit 5 ms.
- USB-Polling. Der Computer fragt die Tastatur so oft nach Neuigkeiten, wie ihre Polling-Rate vorgibt. Ein Druck kurz nach einer Abfrage wartet auf die nächste.
Polling-Rate in Millisekunden
Die Zeit zwischen zwei Abfragen ist 1.000 ms geteilt durch die Polling-Rate. Im Mittel wartet ein Druck die Hälfte davon.
| Polling-Rate | Eine Abfrage alle | Mittlere Wartezeit |
|---|---|---|
| 125 Hz | 8 ms | 4 ms |
| 250 Hz | 4 ms | 2 ms |
| 500 Hz | 2 ms | 1 ms |
| 1000 Hz | 1 ms | 0,5 ms |
| 8000 Hz | 0,125 ms | 0,0625 ms |
Der Wechsel von 125 Hz auf 1.000 Hz spart im Mittel 3,5 ms. Gemessene Tastaturen unterscheiden sich um weit mehr: 2017 maß Dan Luu 21 Tastaturen mit 15 bis 60 ms, und die zwei Gaming-Tastaturen darunter waren nicht schneller als die anderen.
Wie Tastaturlatenz getestet wird
- Ein Hubmagnet und ein USB-Analyzer. RTINGS und LTT Labs drücken die Taste mit einem Hubmagneten, markieren den Moment, in dem er die Taste berührt, und zeichnen mit einem USB-Analyzer auf, wann der Druck die Tastatur verlässt. RTINGS bildet den Mittelwert aus 200 Tastendrücken. Beide stellen die Tastatur vorher auf ihre schnellsten Einstellungen, etwa das niedrigste Debounce und die höchste Polling-Rate.
- Jede Verbindung einzeln. LTT Labs misst Kabel, 2,4-GHz-Funk und Bluetooth getrennt, weil sich die Latenz zwischen ihnen stark unterscheiden kann.
- Ein Logikanalysator. Dan Luu maß damit die Zeit zwischen dem Beginn eines Tastendrucks und dem USB-Paket, das daraus entstand.
- Zu Hause: Kamera oder Lichtsensor. Filme Taste und Bildschirm zusammen in Zeitlupe (240 Bilder pro Sekunde sind ein Bild alle 4,2 ms), oder nutze einen Lichtsensor am Bildschirm, etwa das Open-Source-Tool OSLTT. Beides misst die ganze Kette von der Taste bis zum Bildschirm, nicht die Tastatur allein.
Warum keine Website Tastaturlatenz testen kann
Ein Browser erfährt von einem Tastendruck erst, nachdem die Tastatur ihn gesendet und der Computer ihn weitergereicht hat. Alles, was diese Seite beschreibt, ist also schon passiert, bevor eine Webseite eine Uhr starten kann. Ein Test, der die Zeit von einem Signal bis zu deinem Tastendruck misst, misst deine Reaktion, und die dauert weit länger als die Tastatur. Was ein Browser prüfen kann: ob jede Taste erkannt wird und wie viele gleichzeitig funktionieren, im Tastaturtest, und ob eine Taste doppelt schreibt, im Tastatur-Doppeldruck-Test.
So senkst du die Tastaturlatenz
- Stell die höchste Polling-Rate ein. Das geht in der App des Herstellers, sofern sie diese Einstellung bietet.
- Senk das Debounce, wenn die App es zulässt, aber geh nur bis zur niedrigsten Einstellung, bei der Tasten nicht doppelt schreiben. Fangen Buchstaben an, sich zu verdoppeln, lies, warum eine Tastatur Buchstaben doppelt schreibt.
- Nutze einen kürzeren Auslösepunkt. Bei magnetischen und analogen Tastaturen stellst du ein, wie weit eine Taste nach unten gehen muss, bevor sie zählt. Rapid Trigger, etwa auf Tastaturen von Wooting, gibt eine Taste außerdem frei, sobald du sie anzuheben beginnst, und löst sie wieder aus, sobald du wieder nach unten drückst.
- Wähl für Spiele die schnellste Verbindung. Kann sich deine Tastatur auf mehr als eine Art verbinden, nutze die, die in einem Test am schnellsten gemessen wurde.
- Sieh dir dann den Rest der Kette an. Deine Framerate und dein Bildschirm verursachen meist mehr Verzögerung als die Tastatur: Lies, wie du Input-Lag senkst.
Wie sich lineare, taktile und klickende Switches unterscheiden, mit den Herstellerwerten zu Auslösepunkt und Auslösekraft: Tastatur-Switches.
Quellen: Dan Luu (englisch), Tastaturlatenz; RTINGS (englisch), Methode des Tastatur-Latenztests; LTT Labs (englisch), So testet Labs Tastaturen; QMK (englisch), Debounce-Algorithmus; Wooting (englisch), Rapid Trigger einrichten; OSLTT (englisch), Open Source Latency Test Tool.