Controller · Leitura de 8 min

Polling rate do controle: o limite do navegador

O navegador lê o controle uma vez por quadro renderizado, portanto um teste de polling rate de controle não consegue ver além da sua tela. Meça o limite máximo e compare o seu número com ele.

Revisado em 12 de setembro de 2026 · Editorial da Keymap Labs

Digite "controller polling rate test" em um buscador e você encontrará dezenas de páginas que darão um número em Hz. Execute duas delas no mesmo controle e você provavelmente obterá respostas diferentes. Execute uma delas em um notebook de 60 Hz e depois em um monitor de 144 Hz, com o mesmo controle, e você obterá respostas muito diferentes.

O número não é aleatório. É a sua taxa de atualização.

O mecanismo, num parágrafo

O navegador não recebe a entrada do controle como eventos. Não há oncontrollermove. Uma página pede navigator.getGamepads() para o estado atual, e o lugar mais sensato para consultar é dentro do retorno de chamada de animação — a função que o navegador executa uma vez por quadro desenhado. Assim, uma página pode observar no máximo uma mudança de estado por quadro. A 60 fps, são sessenta observações por segundo; a 144 fps, cento e quarenta e quatro, e não faz diferença se o controle conectado está informando a 125 Hz ou 1000 Hz.

Tudo abaixo decorre desse único fato.

Porque é que o número continua a indicar-lhe algo

Uma leitura no teto máximo não é inútil. Ela é um piso: o seu controle está acompanhando a sua tela, que é a parte que chega ao jogo. Um quadro sem novos dados do controle seria um quadro em que sua visão não girou, e é exatamente isso que você não tem.

O que ela não pode fazer é distinguir entre um controle que está confortavelmente à frente da sua tela e um que está apenas acompanhando. Ambos registram a mesma coisa.

Quando o número é real

Se a leitura fica claramente abaixo a sua taxa de atualização, o controle é o mais lento dos dois e o valor é uma medição genuína. Isso é comum no Bluetooth, e é o caso em que vale a pena agir — alguns quadros do seu jogo reutilizarão a posição anterior do stick porque nada mais recente chegou.

Essa é toda a árvore de decisão:

  • No teto — nada para corrigir aqui. Um cabo não consegue elevar um número que o navegador nunca conseguiu ultrapassar.
  • Abaixo do teto — o controle é o limite. Vale a pena repetir usando um cabo, pois o mesmo controle conectado por fio geralmente responde muito mais rápido do que via Bluetooth.

O que as tabelas de referência significam

A maioria das páginas de polling rate imprime uma tabela como esta:

Conexão Normalmente reportado
Cabo USB around 1000 Hz
Receptor de 2.4 GHz around 1000 Hz
Bluetooth, controles de Xbox around 125 Hz
Bluetooth, controles de PlayStation around 250 Hz and up

Esses valores vêm dos protocolos, não de um navegador, e são um contexto útil. Mas repare no que a tabela significa ao lado do mecanismo acima: em uma tela de 144 Hz, todas as linhas exceto Bluetooth-Xbox estão acima do seu teto. Um navegador não consegue distinguir nenhuma delas. A tabela descreve uma gama de hardware que um teste de navegador comprime numa única resposta.

Porque é que o seu analógico tem de estar em movimento

Um controle parado pode parar completamente de enviar pacotes: não há nada a relatar e o silêncio economiza bateria. Um teste que contasse alterações de estado enquanto você mantém as mãos longe estaria medindo a taxa de ociosidade e chamando-a de polling rate.

Portanto, qualquer versão honesta deste teste pede-lhe para rodar os analógicos durante toda a amostra. Se vir um número suspeitosamente baixo, essa é a primeira coisa a verificar antes de concluir algo sobre o hardware.

O que isto significa para um jogo

Quase nada, e esta é a parte que os argumentos sobre Hz normalmente ignoram. Um jogo lê o seu controle no seu próprio ritmo — tipicamente uma vez por ciclo de simulação ou uma vez por quadro — exatamente pela mesma razão que um navegador o faz. Um controle a reportar a 1000 Hz num jogo a correr a 120 fps está enviando aproximadamente oito pacotes por leitura, sete dos quais são substituídos antes de qualquer coisa olhar para eles.

O argumento a favor de um controle mais rápido não é que o jogo veja mais entradas. É que o pacote mais recente no momento da leitura é mais fresco: a 1000 Hz os dados têm no máximo um milissegundo de idade, a 125 Hz podem ter oito. Essa é uma diferença real e pequena, e é uma afirmação diferente daquela que o número em Hz parece sugerir.

Como obter um número que possa comparar

  1. Meça na máquina em que você realmente joga e com o monitor que você realmente usa.
  2. Anote a taxa de atualização ao lado do resultado. Uma leitura de controle sem ela não é interpretável.
  3. Rode ambos os analógicos durante toda a amostra.
  4. Repita uma vez. Uma única execução que discorde de outras duas é uma falha de temporização, não de hardware.
  5. Se o número estiver abaixo da sua taxa de atualização, experimente um cabo e meça novamente. Se estiver no teto, não há nada aqui para melhorar.

O controller check executa isto juntamente com o drift, intervalo do analógico, botões e gatilhos, e imprime o teto ao lado da leitura. O teste de input latency reporta a mesma medição com a distribuição de intervalos por trás, o que é mais informativo do que qualquer um dos números isoladamente.

A versão curta

O navegador consulta o controle uma vez por quadro renderizado. Qualquer polling rate de controle fornecido pelo navegador é limitado pela sua taxa de atualização. Portanto, uma leitura nesse limite significa "pelo menos tão rápido quanto isto, e esta página não consegue ver além". Apenas uma leitura abaixo desse limite é o número real do seu controle, e esse é o único que vale a pena tentar alterar.