Геймпад · 8 мин чтения

Частота опроса геймпада: предел браузера

Браузер считывает геймпад один раз за отрисованный кадр, поэтому тест частоты опроса контроллера не может увидеть ничего за пределами вашего дисплея. Измерьте потолок, а затем сравните с ним своё число.

Обновлено 12 сентября 2026 г. · Редакция Keymap Labs

Введите «controller polling rate test» в поисковик, и вы найдете дюжину страниц, которые выдадут вам число в Hz. Запустите две из них на одном геймпаде, и вы вполне можете получить два разных ответа. Запустите одну из них на ноутбуке 60 Hz, а затем на мониторе 144 Hz с тем же геймпадом, и вы получите два очень разных ответа.

Это число не случайно. Это ваша частота обновления.

Механизм в одном абзаце

Браузер не получает ввод с геймпада как события. Не существует oncontrollermove. Страница запрашивает navigator.getGamepads()для текущего состояния, и разумное место для запроса — внутри animation callback, функции, которую браузер запускает один раз за отрисованный кадр. Таким образом, страница может зафиксировать не более одного изменения состояния за кадр. При 60 fps это шестьдесят наблюдений в секунду, при 144 fps — сто сорок четыре, и не имеет значения, сообщает ли геймпад под ними данные с частотой 125 Hz или 1000 Hz.

Всё нижеследующее вытекает из этого факта.

Почему это число всё же о чём-то говорит

Показание на уровне потолка не бесполезно. Это нижний предел: ваш геймпад успевает за вашим дисплеем, и именно эта часть доходит до игры. Кадр, в котором не было новых данных с геймпада, был бы кадром, в котором ваш обзор не повернулся, а это именно то, чего у вас нет.

Что он не может сделать, так это отличить геймпад, который с запасом опережает ваш дисплей, от того, который едва успевает. Оба показывают одно и то же.

Когда число реально

Если показание находится явно нижевашей частоты обновления, то геймпад медленнее, чем дисплей, и цифра является реальным измерением. Это часто встречается при Bluetooth-подключении, и это тот случай, когда стоит принять меры — некоторые кадры вашей игры будут использовать предыдущее положение стика, потому что ничего более нового не поступило.

Вот всё дерево решений:

  • На уровне потолка— здесь нечего исправлять. Кабель не может поднять число, которое браузер в принципе не мог увидеть.
  • Ниже потолка— геймпад является ограничивающим фактором. Стоит повторить тест с кабелем, потому что тот же геймпад при проводном подключении обычно работает намного быстрее, чем по Bluetooth.

Что означают справочные таблицы

Большинство страниц с тестами частоты опроса печатают таблицу вроде этой:

Подключение Обычно сообщается
USB-кабель around 1000 Hz
Приёмник 2.4 ГГц around 1000 Hz
Bluetooth, геймпады Xbox around 125 Hz
Bluetooth, геймпады PlayStation around 250 Hz and up

Эти цифры взяты из протоколов, а не из браузера, и они являются полезным контекстом. Но обратите внимание, что означает таблица в сочетании с механизмом выше: на дисплее 144 Hz,каждая строка, кроме Bluetooth-Xbox, находится выше вашего потолка. Браузер не может различить их. Таблица описывает диапазон оборудования, который браузерный тест сводит к одному ответу.

Почему ваш стик должен двигаться

Геймпад, который находится в покое, может вообще перестать отправлять пакеты — сообщать не о чем, и тишина экономит заряд батареи. Тест, который подсчитывал изменения состояния, пока вы не трогали геймпад, измерял бы частоту в простое и называл бы её частотой опроса.

Поэтому каждая честная версия этого теста просит вас вращать стики на протяжении всего замера. Если вы видите подозрительно низкое число, это первое, что нужно проверить, прежде чем делать какие-либо выводы об оборудовании.

Что это значит для игры

Почти ничего — и именно эту часть споры о Hz обычно пропускают. Игра читает геймпад по своему расписанию, обычно раз за тик симуляции или раз за кадр, ровно по той же причине, что и браузер. Геймпад, отправляющий 1000 Hz в игру на 120 fps, посылает примерно восемь пакетов на одно чтение, семь из которых устаревают раньше, чем на них кто-либо посмотрит.

Смысл более быстрого геймпада не в том, что игра увидит больше пакетов. Он в том, что самый свежий пакет в момент чтения новее: при 1000 Hz данным не больше миллисекунды, при 125 Hz — до восьми. Это настоящая разница, и она невелика, и это совсем не то утверждение, которое как будто делает само число Hz.

Как получить число, которое можно сравнивать

  1. Измеряйте на том устройстве, на котором вы играете, и с тем дисплеем, который вы используете.
  2. Запишите частоту обновления рядом с результатом. Показания геймпада без неё невозможно интерпретировать.
  3. Вращайте оба стика на протяжении всего теста.
  4. Повторите один раз. Один запуск, который отличается от двух других, — это сбой планировщика, а не проблема оборудования.
  5. Если число ниже частоты обновления, попробуйте подключить кабель и измерить снова. Если оно упирается в потолок, здесь нечего улучшать.

Тест проверка геймпадазапускает это вместе с дрейфом, диапазоном стиков, кнопками и триггерами, и выводит потолок рядом с показанием. Тестзадержки вводапоказывает то же измерение с распределением интервалов, что информативнее, чем любое число по отдельности.

Коротко

Браузер опрашивает геймпад один раз за отрисованный кадр. Любая частота опроса геймпада, которую выдает браузер, ограничена частотой обновления вашего дисплея, поэтому значение на этом потолке означает «как минимум так быстро, а эта страница не может увидеть больше». Только значение ниже потолка — это реальный показатель вашего геймпада, и только его стоит пытаться изменить.