Input lag do teclado e polling rate explicados

Muitos sites oferecem um teste de latência do teclado ou um verificador de polling rate, mas uma página web só vê os eventos de tecla depois que o teclado, a ligação USB ou sem fio e o sistema operacional fizeram o trabalho deles. Este guia explica cada parte do atraso entre apertar uma tecla e ver o resultado, o que a medição do navegador mostra de forma honesta e o que você precisa para medir a latência real.

De onde vem o atraso do teclado

Entre o seu dedo e a tela existe uma cadeia de etapas, e cada uma acrescenta algum tempo:

  1. Curso e acionamento: a tecla desce até o switch registrar. Em switches mecânicos esse ponto é fixo; em teclados analógicos (efeito Hall ou parecidos) pode ser ajustável.
  2. Varredura: o controlador do teclado verifica a matriz de teclas repetidamente. A frequência com que faz isso é a taxa de varredura (scan rate).
  3. Debounce: o controlador espera ou filtra para que um contato oscilando não seja informado como vários toques.
  4. Polling e transporte: no USB o computador pede dados novos ao teclado no ritmo do polling rate; ligações sem fio e Bluetooth têm tempos próprios.
  5. Sistema operacional e aplicativo: a entrada é processada e entregue ao programa.
  6. Renderização e tela: o programa desenha um novo quadro e o monitor o exibe.

A latência de ponta a ponta é a soma de tudo isso. Os números de marketing normalmente descrevem só uma parte.

Polling rate em números simples

Polling rate é a frequência com que o computador recolhe os relatórios de um teclado USB. A 125 Hz o intervalo é de 8 ms, a 1000 Hz é de 1 ms e a 8000 Hz é de 0,125 ms. Uma taxa maior encurta a espera pelo próximo relatório, mas só essa espera: varredura, debounce, sistema e tela continuam somando a parte deles. O polling rate também não diz nada sobre a rapidez com que o controlador do próprio teclado percebe a tecla.

O que um navegador consegue ver

Uma página web recebe eventos keydown e keyup com marcas de tempo. A partir deles ela consegue mostrar:

  • o tempo entre um toque e a soltura, e entre toques seguidos, que é como o teste de chatter encontra a oscilação do switch;
  • quais teclas estão pressionadas ao mesmo tempo, como no teste de ghosting;
  • o valor e o código exatos da tecla, como no teste de keycode.

Ela não consegue ver quando você apertou a tecla fisicamente, só quando o evento chegou. As marcas de tempo também são arredondadas pelos navegadores por privacidade, às vezes de forma grosseira, e o sistema pode agrupar vários eventos de entrada. A marca de tempo de um evento de tecla, portanto, não é uma medida da latência do teclado.

Por que um site não consegue certificar o polling rate do teclado

O movimento do mouse gera um fluxo contínuo de relatórios, então os intervalos entre os eventos permitem uma estimativa aproximada da taxa do mouse, que é o que faz o teste de polling rate do mouse. Um teclado envia um relatório quando as teclas mudam de estado, e ninguém consegue apertar teclas nem perto de 1000 vezes por segundo. Sem um fluxo constante para cronometrar, o navegador não tem de onde estimar o polling rate de um teclado. Um site que mostra “seu teclado funciona a 1000 Hz” só pela digitação está chutando. A configuração no software do teclado, ou uma ferramenta de análise USB, é a fonte confiável.

Ponto de acionamento e rapid trigger

Nos teclados analógicos, o ponto de acionamento (quanto a tecla desce antes de registrar) e o rapid trigger (registrar a soltura assim que a tecla começa a subir) são medidos por sensores dentro do teclado. O navegador só recebe o toque e a soltura resultantes, não a posição da tecla, então uma página web não consegue medir a distância de acionamento. Use o software do próprio teclado, que lê os valores dos sensores diretamente. O que um teste no navegador consegue confirmar é que toques e solturas chegam quando você espera, por exemplo tocando rápido no teste de teclado.

Como medir a latência real

A latência real de ponta a ponta precisa de uma referência fora do computador: uma câmera de alta velocidade filmando a tecla e a tela ao mesmo tempo, ou um medidor de latência dedicado que detecta o toque e a mudança na tela. Filme ou registre muitos toques e faça a média, porque os resultados individuais variam com o momento dos quadros e dos polls. Se usar uma câmera:

  • use a mesma cena, tela, taxa de atualização e configurações para todos os teclados;
  • aperte com firmeza e sempre do mesmo jeito;
  • conte os quadros desde o momento em que a tecla chega ao fim do curso, ou em que se sabe que o switch aciona, até a primeira mudança visível.

Comparar teclados de forma justa

  • Mude uma coisa de cada vez: a mesma porta, cabo, computador, tela e aplicativo para todos os teclados.
  • Resultados com fio não dizem nada sobre o mesmo teclado no modo sem fio ou Bluetooth; teste cada modo separadamente.
  • Registre muitas amostras e compare as faixas, não só as médias.
  • Trate qualquer número único de um site, inclusive uma medição do navegador, como uma pista e não como uma medida.

Perguntas frequentes

Um navegador consegue medir a latência do teclado?

A latência real, não. Uma página só vê quando o evento da tecla chegou, não quando você apertou, e as marcas de tempo são arredondadas. Medir a latência exige uma referência externa, como uma câmera de alta velocidade ou um medidor dedicado.

Como vejo o polling rate do meu teclado?

Olhe no software ou nas configurações do teclado, que normalmente mostram e permitem mudar essa taxa. Um site não consegue estimar com confiança o polling rate do teclado pela digitação, porque as teclas não geram um fluxo constante de relatórios.

8000 Hz é melhor que 1000 Hz?

Encurta uma parte do atraso, de até 1 ms para até 0,125 ms entre polls. Se você vai notar depende das outras partes da cadeia, que muitas vezes somam bem mais.

Este site tem um teste de latência do teclado?

Não, de propósito. As ferramentas de teclado do TestDock medem o que um navegador consegue ver com confiança: quais teclas chegam, quantas ao mesmo tempo e o tempo dos toques para o chatter. Este guia explica como medir a latência do jeito certo.

Testes relacionados