Opóźnienie klawiatury: skąd się bierze i jak się je testuje
Opóźnienie klawiatury to czas od chwili, w której palec zaczyna naciskać klawisz, do chwili, w której klawiatura wysłała to naciśnięcie do komputera. Składa się z czterech części: skoku klawisza, skanowania klawiszy przez klawiaturę, debounce i odpytywania USB. Żadna strona internetowa nie może go zmierzyć, bo przeglądarka dowiaduje się o naciśnięciu dopiero wtedy, gdy klawiatura już je wysłała. Testerzy używają solenoidu, który naciska klawisz, i analizatora USB, który rejestruje, kiedy naciśnięcie opuszcza klawiaturę. Żeby je zmniejszyć, ustaw krótszy punkt aktywacji, najwyższy polling rate i najniższy debounce, przy którym klawisze nie piszą podwójnie.
Gdzie czeka naciśnięcie klawisza, zanim dotrze do komputera
- Skok klawiszaklawisz przesuwa się w dół do punktu, w którym przełącznik zadziała
- Skanowanieukład w klawiaturze sprawdza siatkę klawiszy, rząd po rzędzie
- Debounceklawiatura czeka, aż styk przełącznika przestanie drgać, albo ignoruje drgania
- Odpytywanie USBnaciśnięcie czeka, aż komputer znów zapyta klawiaturę o nowe dane
Razem: opóźnienie klawiatury
Dopiero tutaj strona internetowa może zacząć mierzyć czas
Komputer i ekran gra wykorzystuje naciśnięcie, rysuje klatkę, a wyświetlacz ją pokazuje: reszta twojego input lagu
Skąd bierze się opóźnienie
- Skok klawisza. Nic się nie dzieje, dopóki klawisz nie dojdzie do punktu aktywacji. Na nagraniu w 240 klatkach na sekundę zwykłe naciśnięcie klawisza do samego dołu zajmowało od 4 do 8 klatek, a sam skok może łatwo dodać 10 ms. Najszybsza klawiatura w tym teście miała też zdecydowanie najkrótszy skok.
- Skanowanie. Większość klawiatur łączy klawisze w siatkę i sprawdza ją rząd po rzędzie. Klawiatura, która skanuje wolno, może zauważyć naciśnięcie dopiero kilka milisekund po zamknięciu przełącznika.
- Debounce. Styk przełącznika przez chwilę drga, gdy się zamyka. Klawiatura albo od razu zgłasza naciśnięcie i ignoruje drgania, albo czeka, aż styk się ustabilizuje. W QMK, firmware open source, na którym działa wiele klawiatur custom, domyślny czas debounce wynosi 5 ms.
- Odpytywanie USB. Komputer pyta klawiaturę o nowe dane tak często, jak wynika z jej polling rate. Naciśnięcie wykonane tuż po odpytaniu czeka na następne.
Polling rate w milisekundach
Odstęp między dwoma odpytaniami to 1000 ms podzielone przez polling rate. Naciśnięcie czeka średnio połowę tego czasu.
| Polling rate | Odpytanie co | Średni czas oczekiwania |
|---|---|---|
| 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 |
Przejście ze 125 Hz na 1000 Hz oszczędza średnio 3,5 ms. Zmierzone klawiatury różnią się o wiele bardziej: w 2017 roku Dan Luu zmierzył 21 klawiatur z wynikami od 15 do 60 ms, a dwie klawiatury gamingowe wśród nich nie były szybsze od pozostałych.
Jak testuje się opóźnienie klawiatury
- Solenoid i analizator USB. RTINGS i LTT Labs naciskają klawisz solenoidem, zaznaczają moment, w którym dotyka on klawisza, i analizatorem USB rejestrują, kiedy naciśnięcie opuszcza klawiaturę. RTINGS uśrednia 200 naciśnięć. Obie firmy najpierw przełączają klawiaturę na najszybsze ustawienia, na przykład najniższy debounce i najwyższy polling rate.
- Każde połączenie osobno. LTT Labs mierzy osobno połączenie kablowe, bezprzewodowe 2,4 GHz i Bluetooth, bo opóźnienie może się między nimi mocno różnić.
- Analizator stanów logicznych. Dan Luu zmierzył nim czas między początkiem naciśnięcia klawisza a pakietem USB, który to naciśnięcie wygenerowało.
- W domu: kamera albo czujnik światła. Nagraj klawisz i ekran razem w zwolnionym tempie (240 klatek na sekundę to jedna klatka co 4,2 ms) albo użyj czujnika światła przyłożonego do ekranu, na przykład otwartoźródłowego OSLTT. Obie metody mierzą cały łańcuch od klawisza do ekranu, a nie samą klawiaturę.
Dlaczego żadna strona internetowa nie zmierzy opóźnienia klawiatury
Przeglądarka dowiaduje się o naciśnięciu klawisza dopiero wtedy, gdy klawiatura je wysłała, a komputer przekazał dalej, więc wszystko, co opisuje ten poradnik, już się wydarzyło, zanim strona internetowa może zacząć mierzyć czas. Test, który mierzy czas od sygnału do twojego naciśnięcia, mierzy twoją reakcję, a ta trwa znacznie dłużej niż praca klawiatury. Przeglądarka może za to sprawdzić, czy każdy klawisz jest rejestrowany i ile działa naraz, w teście klawiatury, oraz czy klawisz nie pisze podwójnie, w teście podwójnego naciśnięcia klawisza.
Jak zmniejszyć opóźnienie klawiatury
- Ustaw najwyższy polling rate w aplikacji producenta, jeśli daje taką możliwość.
- Obniż debounce, jeśli aplikacja na to pozwala, ale zatrzymaj się na najniższym ustawieniu, przy którym klawisze nie piszą podwójnie. Jeśli litery zaczną się podwajać, zobacz, dlaczego klawiatura pisze podwójne litery.
- Ustaw krótszy punkt aktywacji. Klawiatury magnetyczne i analogowe pozwalają ustawić, jak głęboko trzeba wcisnąć klawisz, zanim naciśnięcie się liczy. Rapid Trigger, na przykład w klawiaturach Wooting, dodatkowo zwalnia klawisz w chwili, gdy zaczynasz go podnosić, i znów go aktywuje, gdy tylko ponownie wciśniesz go w dół.
- Do gier wybierz najszybsze połączenie. Jeśli klawiatura łączy się na kilka sposobów, używaj tego, które w recenzji wypadło najszybciej.
- Potem przyjrzyj się reszcie łańcucha. Liczba klatek na sekundę i wyświetlacz zwykle dodają więcej opóźnienia niż klawiatura: zobacz, jak zmniejszyć input lag.
Czym różnią się przełączniki liniowe, taktylne i klikające, z danymi producenta o punkcie i sile aktywacji: przełączniki klawiatury.
Źródła: Dan Luu (po angielsku), Opóźnienie klawiatury; RTINGS (po angielsku), metoda pomiaru opóźnienia klawiatury; LTT Labs (po angielsku), Jak Labs testuje klawiatury; QMK (po angielsku), Algorytm debounce; Wooting (po angielsku), Jak skonfigurować Rapid Trigger; OSLTT (po angielsku), Open Source Latency Test Tool.