Files
ozone-tech_owl_prime/docs/PERFORMANCE_BASELINE.md
Даня Архипов 985f7c327d feat: maximize sorter demo realism and add safe agent MVP
Wire live classifyItem into continuous playback, add jam/E-stop cases,
presenter controls (seek/speed/hotkeys), quality modes, demo scripts,
audit docs, and a verify-only autonomous agent CLI with hard safety limits.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 16:53:35 +00:00

5.4 KiB
Raw Blame History

Базовая линия производительности (Performance Baseline)

Дата: 2026-07-15
Ветка: feature/maximum-demo-realism
Команды: npm test, npm run build

Легенда: Измерено · Оценка · Не измерено в этом прогоне (клиентский FPS на железе жюри).


1. Тесты

Метрика Baseline до изменений После изменений Тип
Passed assertions/tests 144 153 Измерено
Test files 14 16 Измерено
Runner Vitest Vitest —
Результат green green Измерено

Дельта: +9 тестов, +2 файла (в т.ч. расширенный simulation.test.ts, qualityMode.test.ts и связанные).


2. Production build

Метрика До После Тип
Build status OK OK Измерено
Build time ~391 ms OK (порядок сотен ms) Измерено / частично
Pipeline tsc -b && vite build то же Измерено

Размеры артефактов (после)

Артефакт Raw Gzip Тип
CSS 39.66 kB 8.79 kB Измерено
Continuous twin JS chunk 51.29 kB 13.68 kB Измерено
Main R3F-related chunk (до итерации) ~881 kB — Измерено (baseline до)

Точный полный rollup всех чанков «после» зависит от конкретного vite build output; CSS и continuous twin зафиксированы аудитом. Main Three/R3F chunk исторически доминирует по весу — это ожидаемо.


3. Runtime (клиент)

Метрика Ожидание / факт Тип
Рендер 3D WebGL в браузере клиента Измерено (архитектура)
Серверный 3D Не используется Измерено
Target FPS demo/high 60 Измерено (presets)
Target FPS low/medium 30 Измерено
Shadows / effects Выключены в presets Измерено
Adaptive quality detectQualityMode / adaptQuality Измерено
Фактический FPS 1080p на GTX клиента жюри Зависит от клиента Не измерено здесь

Сервер (OwlPrime) при раздаче статики: load ~0.5–0.6 — не является bottleneck FPS (Измерено нагрузка хоста).


4. Качество vs производительность (trade-offs)

Рычаг Влияние на FPS Влияние на реализм
dprMax 1→1.5 − + резкость
antialias − + края
shadows on −− + контакт с лентой
effects/AO −−− + «кино»
maxVisibleItems + при снижении − плотность потока
rollerDetail none/sparse + − механика роликов
Static rollers (perf commit) + − вращение

Текущая политика: сначала стабильный FPS, затем дозированный реализм.


5. Сравнение до / после (сводка)

Метрика До После Изменение
Tests passed 144 153 +9
Test files 14 16 +2
Build OK ~391ms OK стабильно
Demo playlist cases 8 10 +2 (faults)
Live classify on / playlist-heavy wired classifyItem качество демо ↑
Quality modes не как система low…demo +адаптация
CSS gzip — 8.79 kB зафиксировано
Continuous chunk gzip — 13.68 kB зафиксировано

6. Нагрузка инструментов разработки на сервере

Инструмент Оценка стоимости Рекомендация
npm test Умеренная CPU, минуты OK on-demand
npm run build Короткая CPU OK
Playwright 1 worker Высокая RAM Не во время демо
Local LLM 7B Очень высокая VRAM/RAM Избегать на хосте демо
Agent dry-run = tests+build Лимит 1 worker

7. Регрессионные триггеры (когда обновлять baseline)

Переснять baseline, если:

  • включены shadows/effects в default demo;
  • добавлен physics engine;
  • вырос main chunk >20%;
  • FPS жалобы на 1366×768;
  • изменён continuous twin chunk существенно.

8. Вывод

Производительность MVP приемлема для статического хостинга и клиентского WebGL. Бюджет сознательно защищён отключёнными тенями/эффектами. Главный риск FPS — будущие визуальные «улучшения без лимитов», а не текущий nginx.