Latência do teclado: de onde vem o atraso e como ela é testada
Latência do teclado é o tempo entre o momento em que o seu dedo começa a apertar uma tecla e o momento em que o teclado envia esse toque para o computador. Ela se acumula em quatro lugares: o curso da tecla, a varredura das teclas feita pelo teclado, o debounce e o polling USB. Nenhum site consegue medi-la, porque o navegador só fica sabendo de um toque depois que o teclado já o enviou. Quem testa teclados usa um solenoide que aperta a tecla e um analisador USB que registra quando o toque sai do teclado. Para reduzi-la, use um ponto de acionamento mais curto, o polling rate mais alto e o menor debounce que não faça as teclas digitarem duas vezes.
Onde o toque na tecla espera antes de chegar ao computador
- Curso da teclaa tecla desce até o ponto em que o switch é acionado
- Varredurao chip do teclado confere a grade de teclas, linha por linha
- Debounceele espera o contato do switch parar de trepidar, ou ignora a trepidação
- Polling USBo toque espera até o computador perguntar de novo ao teclado se há novidades
Somando tudo: a latência do teclado
Uma página web só consegue começar a contar o tempo aqui
Computador e tela o jogo usa o toque, desenha um quadro e a tela o mostra: o resto do seu input lag
De onde vem o atraso
- Curso da tecla. Nada acontece até a tecla chegar ao ponto de acionamento. Filmado a 240 quadros por segundo, um toque normal levou de 4 a 8 quadros para descer até o fim, e só o curso já pode somar 10 ms com facilidade. O teclado mais rápido desse teste também tinha, de longe, o curso mais curto.
- Varredura. A maioria dos teclados liga as teclas numa grade e confere essa grade linha por linha. Um teclado com varredura lenta pode perceber o seu toque vários milissegundos depois de o switch fechar.
- Debounce. O contato de um switch trepida por um instante quando fecha. O teclado ou informa o toque na hora e ignora a trepidação, ou espera o contato se estabilizar. No QMK, o firmware de código aberto que muitos teclados custom usam, o debounce padrão é de 5 ms.
- Polling USB. O computador pergunta ao teclado se há novidades no ritmo do polling rate. Um toque feito logo depois de uma consulta espera a próxima.
Polling rate em milissegundos
O tempo entre duas consultas é 1.000 ms dividido pelo polling rate. Em média, um toque espera metade disso.
| Polling rate | Uma consulta a cada | Espera média |
|---|---|---|
| 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 |
Passar de 125 Hz para 1.000 Hz economiza 3,5 ms em média. Os teclados medidos variam muito mais do que isso: em 2017, Dan Luu mediu 21 teclados entre 15 e 60 ms, e os dois teclados gamer do grupo não foram mais rápidos que os outros.
Como a latência do teclado é testada
- Um solenoide e um analisador USB. RTINGS e LTT Labs apertam a tecla com um solenoide, marcam o momento em que ele encosta na tecla e registram com um analisador USB quando o toque sai do teclado. O RTINGS tira a média de 200 toques. Os dois deixam antes o teclado nas configurações mais rápidas, como o menor debounce e o maior polling rate.
- Cada conexão separada. O LTT Labs mede o cabo, o sem fio de 2,4 GHz e o Bluetooth separadamente, porque a latência pode mudar muito entre eles.
- Um analisador lógico. Dan Luu usou um para medir o intervalo entre o início de um toque e o pacote USB que ele gerou.
- Em casa, uma câmera ou um sensor de luz. Filme a tecla e a tela juntas em câmera lenta (240 quadros por segundo dá um quadro a cada 4,2 ms) ou use um sensor de luz na tela, como o OSLTT, de código aberto. Os dois medem a cadeia inteira, da tecla até a tela, não só o teclado.
Por que nenhum site consegue testar a latência do teclado
O navegador só fica sabendo de um toque depois que o teclado o enviou e o computador o repassou, então tudo o que esta página descreve já aconteceu antes de uma página web poder começar a contar o tempo. Um teste que mede o tempo entre um sinal e o seu toque mede a sua reação, que leva muito mais tempo que o teclado. O que o navegador consegue verificar é se todas as teclas registram e quantas funcionam ao mesmo tempo, no teste de teclado, e se uma tecla digita duas vezes, no teste de tecla duplicando.
Como reduzir a latência do teclado
- Coloque o polling rate no máximo no aplicativo do fabricante, se ele oferecer essa opção.
- Diminua o debounce, se o aplicativo deixar, mas pare no menor valor que não faça as teclas digitarem duas vezes. Se as letras começarem a duplicar, veja por que o teclado digita letras duplicadas.
- Use um ponto de acionamento mais curto. Teclados magnéticos e analógicos deixam você definir quanto a tecla precisa descer antes de contar. O Rapid Trigger, em teclados como os da Wooting, também solta a tecla assim que você começa a levantá-la e a aciona de novo assim que você volta a pressioná-la.
- Escolha a conexão mais rápida para jogar. Se o seu teclado se conecta de mais de um jeito, use a conexão que uma análise mediu como a mais rápida.
- Depois, olhe o resto da cadeia. A taxa de quadros e a tela costumam somar mais atraso que o teclado: veja como reduzir o input lag.
Como switches lineares, táteis e clicky se diferenciam, com os números do fabricante para ponto e força de acionamento: switches de teclado.
Fontes: Dan Luu, Latência de teclados; RTINGS, como medem a latência do teclado; LTT Labs, Como o Labs faz os testes de teclado; QMK, Algoritmo de debounce; Wooting, Como configurar o Rapid Trigger; OSLTT, Ferramenta de código aberto para testar latência.