Как мы измеряем

Как мы измеряем

Что именно измеряет наш тест, как считаются значения и что браузер в принципе измерить не может.

Здесь описано, что именно измеряет тест, как считаются значения и что браузер в принципе измерить не может. Это сокращённая версия; полная методика опубликована на английском и остаётся основной.

Что делает тест

  • Задержка в покое: 50 запросов к нашему эндпоинту с интервалом 60 мс, время круга берётся из PerformanceResourceTiming. Первые пять замеров отбрасываются как прогрев.
  • Цикл тика: 30 секунд по 20 небольших кадров в секунду через WebSocket — как у типичного игрового сервера.
  • Задержка под нагрузкой: большая загрузка в фоне, а задержка измеряется каждые 400 мс.

Как считаются значения

  • Процентили с линейной интерполяцией; публикуем p50, p95 и худший замер, а не только среднее — среднее скрывает всплески.
  • Джиттер — средняя абсолютная разница соседних замеров, плюс 95-й процентиль этой разницы.
  • Кадры, которые не вернулись, мы называем таймаутами, а не потерей пакетов: транспорт на TCP, а TCP повторяет потерянное.
  • Вывод даётся только при 30 и более пригодных замерах, иначе тест говорит, что не знает.

Что браузер измерить не может

  • Ваш пинг в игре: браузер не может открыть сырой сокет к игровому серверу, а игровые серверы обычно не отвечают на ICMP.
  • Реальную потерю UDP-пакетов: браузер не может отправлять сырые UDP-пакеты.
  • Маршрут до игрового сервера: для этого нужны точки измерения в регионе игры.
  • FPS, железо и неткод игры: сознательно вне области.

Полную методику мы публикуем на английском. Читать полную методику на английском (EN)