FPSLAB

ОДНА СЦЕНА. ТРИ РЕНДЕРЕРА.

React DOMREACT 19.3.1 · TYPESCRIPT

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

ПУТЬ ОБНОВЛЕНИЯrequestAnimationFrame → state → render → commitProduction-сборка · без внешних ресурсов
FPS · rAF—Частота экрана: калибровка при запуске
ОБНОВЛЕНИЯ СЦЕНЫ / С—Завершённые обновления рендерера, без paint
КАДР · P95— ms95% интервалов короче этого значения
ОБНОВЛЕНИЕ DOM · P95— msОт вызова update до завершения DOM-патча
ПРОПУЩЕННЫЕ ИНТЕРВАЛЫ— %Оценка интервалов rAF; не число DOM-commits
Загрузка рендерера…
—
Выбери нагрузку и запусти замер2 с прогрева исключены из результата
LIVE DOM SCENE
FPS rAF ВО ВРЕМЯ ПРОГОНА—

ВОСПРОИЗВОДИМЫЕ РЕЗУЛЬТАТЫ

История замеров

РендерерЭлементы / режимFPS rAFСцена / сКадр p95DOM p95ПропускиВремя
Пока нет замеров. Запусти одинаковую нагрузку во всех версиях.

01

Одинаковая работа

Одинаковые seed, координаты, размеры и CSS. Native обновляет узлы напрямую. Jaspr и React проходят через состояние, render/build и DOM. Canvas и WebGL в этот тест не входят.

02

rAF и работа сцены

FPS rAF показывает темп callbacks браузера. «Сцена / с» считает завершённые обновления рендерера. Они могут расходиться из-за асинхронного планирования. Не более одного update в полёте; React работает без flushSync.

03

Одна вкладка за раз

Сохрани размер окна, seed и настройки. Скрытие вкладки или изменение размера прерывает замер. Ни rAF, ни DOM-commit не являются счётчиком физически показанных GPU-кадров. Если все версии держат частоту экрана — увеличь нагрузку.