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

118 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Базовая линия производительности (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.