Snaplytics JS Tests

Тест Frame Skipping

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

Гц

Монитор в реальном времени работает — держите эту вкладку в фокусе для точного результата.

В прямом эфире
Недавние кадрыВовремяПропущено
Сбор кадров…
Частота обновления
Гц
Своевременные кадры
0
Пропущено
0
Доля пропусков
Самый длинный промежуток

Полоса захвата камерой (необязательно)

Маркер продвигается на одну клетку за каждый отрисованный кадр. Сфотографируйте экран с короткой выдержкой или запишите в замедленном режиме — отсутствующий шаг выдаёт потерянный кадр. Вторично по отношению к детектору выше.

Как работает детектор

Браузер вызывает requestAnimationFrame один раз за каждое обновление экрана, поэтому промежуток между обратными вызовами должен оставаться близким к одному интервалу обновления — около 16,7 мс на панели 60 Гц или 6,9 мс при 144 Гц. Тест записывает эти промежутки и берёт медиану, чтобы установить ожидаемый интервал, что также даёт вашу истинную частоту обновления. Когда промежуток растягивается примерно до 1,5× ожидаемого интервала или более, хотя бы один кадр так и не был показан; тест округляет промежуток до ближайшего целого числа интервалов, чтобы оценить, сколько кадров было потеряно. Длинные паузы из-за переключения вкладок или сворачивания окна игнорируются, а не считаются пропусками.

Frame skipping, stutter и judder

Эти термины пересекаются, но описывают разные дефекты. Frame skipping (потерянные кадры) возникает, когда конвейер не может доставить новое изображение для цикла обновления, поэтому предыдущий кадр показывается дважды, а движение кажется прыгающим. Stutter — это неровный темп кадров — кадры приходят, но с нерегулярными интервалами — что выглядит рывкообразно, даже если технически ничего не потеряно. Judder — это равномерная, ритмичная неровность, возникающая, когда частота кадров не делится нацело на частоту обновления, например фильм 24 fps на экране 60 Гц. Этот тест нацелен на действительно потерянные кадры на уровне обновления; прогон без пропусков всё равно может казаться менее чем идеально плавным, если темп неровный.

Почему монитор пропускает кадры

  • Ограничения кабеля или пропускной способности: высокая частота обновления при высоком разрешении может превышать то, что может передать версия кабеля или порта, поэтому соединение теряет кадры. Это классическая причина пропусков только на максимальной частоте монитора.
  • Разогнанные частоты обновления: работа панели выше её номинальных Гц часто выглядит стабильно, но незаметно повторяет кадры вместо показа новых.
  • Проблемы с GPU, драйвером или температурой: устаревшие драйверы, перегруженный или перегретый GPU или агрессивное энергосбережение могут лишать дисплей готовых кадров.
  • Фоновая нагрузка и троттлинг браузера: тяжёлая работа в других вкладках или приложениях и замедление requestAnimationFrame для нефокусных вкладок вызывают промежутки, которые измеряет этот тест.

Что измеряет и не измеряет этот тест

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