Latența tastaturii: de unde vine întârzierea și cum se testează
Latența tastaturii este timpul dintre momentul în care degetul începe să apese o tastă și momentul în care tastatura a trimis apăsarea către calculator. Se adună în patru locuri: cursa tastei, scanarea tastelor de către tastatură, debounce-ul și polling-ul USB. Niciun site nu o poate măsura, pentru că browserul află de o apăsare abia după ce tastatura a trimis-o. Cei care testează tastaturi folosesc un solenoid care apasă tasta și un analizor USB care înregistrează momentul în care apăsarea pleacă din tastatură. Ca s-o reduci, folosește un punct de acționare mai scurt, cel mai mare polling rate și cel mai mic debounce care nu face tastele să scrie dublu.
Unde așteaptă apăsarea unei taste până ajunge la calculator
- Cursa tasteitasta coboară până în punctul în care se declanșează comutatorul
- Scanarecipul tastaturii verifică rețeaua de taste, rând cu rând
- Debounceașteaptă să înceteze vibrația contactului din comutator sau ignoră vibrația
- Polling USBapăsarea așteaptă până când calculatorul întreabă din nou tastatura dacă are ceva nou
Împreună: latența tastaturii
O pagină web își poate porni cronometrul abia de aici
Calculator și ecran jocul folosește apăsarea, desenează un cadru, iar ecranul îl afișează: restul input lagului tău
De unde vine întârzierea
- Cursa tastei. Nu se întâmplă nimic până când tasta nu ajunge la punctul de acționare. Filmată la 240 de cadre pe secundă, o apăsare obișnuită a avut nevoie de 4 până la 8 cadre ca să coboare complet, iar doar cursa poate adăuga ușor 10 ms. Cea mai rapidă tastatură din acel test avea și cursa de departe cea mai scurtă.
- Scanare. Majoritatea tastaturilor își leagă tastele într-o rețea și o verifică rând cu rând. O tastatură care scanează încet poate vedea apăsarea ta la câteva milisecunde după ce s-a închis comutatorul.
- Debounce. Contactul unui comutator vibrează o clipă când se închide. Tastatura fie raportează apăsarea imediat și ignoră vibrația, fie așteaptă până se stabilizează contactul. În QMK, firmware-ul open-source folosit de multe tastaturi custom, debounce-ul implicit este de 5 ms.
- Polling USB. Calculatorul întreabă tastatura dacă are ceva nou în ritmul dat de polling rate. O apăsare făcută imediat după o interogare o așteaptă pe următoarea.
Polling rate-ul în milisecunde
Timpul dintre două interogări este 1.000 ms împărțit la polling rate. În medie, o apăsare așteaptă jumătate din acest timp.
| Polling rate | O interogare la fiecare | Așteptare medie |
|---|---|---|
| 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 |
Trecerea de la 125 Hz la 1.000 Hz economisește în medie 3,5 ms. Tastaturile măsurate diferă mult mai mult de atât: în 2017, Dan Luu a măsurat 21 de tastaturi, între 15 și 60 ms, iar cele două tastaturi de gaming dintre ele nu au fost mai rapide decât celelalte.
Cum se testează latența tastaturii
- Un solenoid și un analizor USB. RTINGS și LTT Labs apasă tasta cu un solenoid, notează momentul în care acesta atinge tasta și înregistrează cu un analizor USB când pleacă apăsarea din tastatură. RTINGS face media a 200 de apăsări. Amândoi pun întâi tastatura pe cele mai rapide setări, cum ar fi cel mai mic debounce și cel mai mare polling rate.
- Fiecare conexiune separat. LTT Labs măsoară separat conexiunea prin cablu, wireless-ul de 2,4 GHz și Bluetooth-ul, pentru că latența se poate schimba mult de la una la alta.
- Un analizor logic. Dan Luu a folosit unul ca să cronometreze intervalul dintre începutul apăsării unei taste și pachetul USB produs de ea.
- Acasă, o cameră sau un senzor de lumină. Filmează tasta și ecranul împreună cu încetinitorul (240 de cadre pe secundă înseamnă un cadru la fiecare 4,2 ms) sau pune pe ecran un senzor de lumină, de exemplu OSLTT, care e open-source. Ambele cronometrează tot lanțul, de la tastă la ecran, nu doar tastatura.
De ce niciun site nu poate testa latența tastaturii
Un browser află de apăsarea unei taste abia după ce tastatura a trimis-o și calculatorul a transmis-o mai departe, așa că tot ce descrie această pagină s-a petrecut deja înainte ca o pagină web să poată porni un cronometru. Un test care te cronometrează de la un semnal până la apăsarea tastei îți măsoară reacția, care durează mult mai mult decât tastatura. Ce poate verifica un browser este dacă fiecare tastă e înregistrată și câte merg deodată, cu testul de tastatură, și dacă o tastă scrie de două ori, cu testul de apăsare dublă a tastelor.
Cum reduci latența tastaturii
- Setează cel mai mare polling rate în aplicația producătorului, dacă are această opțiune.
- Scade debounce-ul, dacă aplicația te lasă, dar oprește-te la cea mai mică valoare care nu face tastele să scrie dublu. Dacă literele încep să se dubleze, vezi de ce scrie tastatura litere duble.
- Folosește un punct de acționare mai scurt. Tastaturile magnetice și analogice te lasă să alegi cât de jos trebuie să coboare o tastă ca apăsarea să conteze. Rapid Trigger, pe tastaturi precum cele de la Wooting, eliberează în plus tasta imediat ce începi s-o ridici și o apasă din nou imediat ce o împingi iar în jos.
- Alege cea mai rapidă conexiune pentru jocuri. Dacă tastatura se poate conecta în mai multe feluri, folosește conexiunea pe care o recenzie a măsurat-o ca fiind cea mai rapidă.
- Apoi uită-te la restul lanțului. Frame rate-ul și ecranul adaugă de obicei mai multă întârziere decât tastatura: vezi cum reduci input lagul.
Prin ce se deosebesc switch-urile liniare, tactile și clicky, cu cifrele producătorului pentru punctul și forța de activare: switch-uri de tastatură.
Surse: Dan Luu, Latența tastaturilor; RTINGS, metoda lor de testare a latenței; LTT Labs, Cum testează Labs tastaturile; QMK, Algoritmul de debounce; Wooting, Cum configurezi Rapid Trigger; OSLTT, Instrument open-source pentru testarea latenței.