GUIDE 05
Частота опроса и пределы точности — насколько точен ваш результат CPS
Как частота опроса мыши, время событий в браузере, автоповтор клавиш и частота обновления монитора влияют на замер CPS и где пределы его точности.
Веб-тест CPS отталкивается не от момента, когда палец нажал кнопку, а от момента, когда браузер получил событие ввода. Между ними несколько этапов, и на каждом появляется небольшая погрешность. Разберём, что влияет на результат, а что нет.
Путь нажатия до экрана
- Переключатель замыкается, прошивка мыши проходит антидребезг и фиксирует нажатие.
- Мышь с определённой периодичностью сообщает компьютеру своё состояние (опрос).
- Операционная система принимает ввод и передаёт его браузеру.
- Браузер создаёт событие, ставит на нём отметку времени и передаёт скрипту страницы.
Частота опроса
Частота опроса — это сколько раз в секунду мышь сообщает о своём состоянии. Интервал между отчётами равен 1000 ÷ частота опроса (ms).
| Частота опроса | Интервал отчётов |
|---|---|
| 125 Hz | 8 ms |
| 500 Hz | 2 ms |
| 1000 Hz | 1 ms |
На само число кликов она почти не влияет. Даже при 20 кликах в секунду интервал между ними составляет 50 ms — намного больше, чем интервал отчётов при 125 Hz. Однако время каждого клика может сдвигаться на величину интервала отчётов, поэтому распределение интервалов может размываться на несколько ms.
Точность времени в браузере
CPS-метр использует отметку времени события (event.timeStamp) и performance.now(). Браузеры из соображений безопасности иногда намеренно снижают точность этого времени, поэтому интервалы правильнее читать с точностью до нескольких ms, а не доверять знакам после точки. Даже если страница занята тяжёлой работой, время события отсчитывается от момента поступления ввода, поэтому нажатия не теряются.
Частота обновления монитора не важна
Будь то 60 Hz или 240 Hz, частота обновления экрана меняет только скорость отображения чисел. Нажатия считаются независимо от обновления экрана, так что результат от неё не зависит.
Беспроводные мыши и Bluetooth
При беспроводном подключении отчёты иногда приходят пачкой или с задержкой. Число кликов обычно не меняется, но распределение интервалов может стать шире. Для точного сравнения сравнивайте результаты с одинаковым типом подключения.
Автоповтор клавиш
Если удерживать клавишу, операционная система через равные промежутки генерирует повторные нажатия. CPS-метр проверяет у события признак повтора (KeyboardEvent.repeat) и, кроме того, не засчитывает новое нажатие, если перед ним клавиша не была отпущена. Поэтому простым удержанием результат не поднять.
Начало и конец замера
- Начало: таймер запускается первым нажатием, поэтому время реакции исключается.
- Конец: нажатия после того, как заданное время истекло, отбрасываются. Даже если надпись «Готово» появилась с задержкой, подсчёт идёт по времени событий.
- Уход со страницы: если во время замера перейти на другую вкладку, браузер может замедлить таймер, поэтому замер отменяется.
Вывод
Чтобы делать несколько замеров и следить за тенденцией, веб-измерения вполне достаточно. Разница порядка 0.1 CPS может возникать из-за устройства и подключения, поэтому сравнивайте несколько замеров в одинаковых условиях.