Тяжёлый бенчмарк CPU + рендеринга: «Игра жизнь» Конуэя на фиксированной сетке 800×500, 2000 поколений. Все участники стартуют с одинакового состояния (Mulberry32 seed 2000, заполнение 30%). Меньше — лучше.
«Жизнь 2000» — бенчмарк на основе клеточного автомата «Игра жизнь» Джона Хортона Конуэя (1970). Симуляция работает на фиксированной сетке 800×500 (400 000 клеток). Начальное состояние формируется генератором Mulberry32 с зерном 2000 при плотности заполнения 30% — это гарантирует одинаковый старт для всех участников вне зависимости от устройства и разрешения экрана. Тест завершается после ровно 2000 поколений; меньшее время — лучший результат.
На каждом поколении все клетки обновляются по четырём правилам одновременно: живая клетка с 2 или 3 соседями выживает; с менее чем 2 или более чем 3 — умирает; мёртвая клетка ровно с 3 живыми соседями оживает. Каждая из 400 000 клеток требует 8 обращений к Uint8Array — 3,2 млн чтений на поколение и 6,4 млрд чтений за весь тест. Нагрузка ограничена пропускной способностью памяти, а не арифметикой: результат чувствителен к иерархии кэша CPU и эффективности предвыборки данных.
Каждый кадр вычисляет 27 шагов GOL, затем рендерит всю сетку 800×500 через API putImageData одним вызовом с буфером из 400 000 пикселей. Чередование вычислений и рендеринга нагружает как последовательную целочисленную производительность CPU, так и конвейер компоновки canvas браузера. Тороидальные граничные условия реализованы через операцию взятия остатка (%) на каждой граничной клетке. Итоговое время wall-clock от первого кадра анимации до завершения 2000-го поколения измеряется через performance.now().