04Ревью кода
Ревью производительности
Найти узкие места: N+1, рендеры, тяжёлые операции в hot path, утечки памяти.
Ревью производительности: {{scope}}.
Подход: сначала найди hot paths (что выполняется часто или на критичном пути), потом ищи проблемы в них.
1. Hot path identification
- Какие функции выполняются на каждый request?
- Какие — в рендере UI?
- Какие — на пользовательском действии?
Сначала оптимизируй их. Cold paths могут быть неэффективны — это не больно.
2. Database
- N+1 queries — цикл с запросом внутри? используй
include/join/ dataloader - Missing indexes — частые WHERE / ORDER BY без индекса?
- **SELECT *** — берём поля которые не нужны?
- Транзакции — слишком длинные, держат locks?
- Connection pooling — настроено?
3. Network
- Лишние round-trips? (5 запросов вместо 1 batch)
- Caching headers на API? (ETag, Last-Modified, Cache-Control)
- Gzip / Brotli на ответы?
- CDN для статики?
4. Memory
- Утечки: listeners не отписываются, refs накапливаются
- Большие объекты в closure, которые не освобождаются
- Создание объектов на каждый рендер
- Большие массивы которые держатся в памяти ради иногда-доступа
5. CPU
- Тяжёлые синхронные операции в event loop (JS / Node)?
- O(n²) там где можно O(n log n) или O(n)?
- Regex на горячем пути с catastrophic backtracking?
6. React / Frontend
- Лишние рендеры (нет
useMemo/useCallbackгде нужно, неправильные dependencies) - Большие списки без виртуализации
- Изображения без width/height / lazy / форматов AVIF/WebP
- Bundle size: что грузится но не используется?
- Code splitting: что можно вынести в lazy chunk?
7. Asset pipeline
- Шрифты блокируют рендер? (
font-display: swap) - JS грузится с
async/defer? - CSS не критичный — асинхронно?
Формат отчёта
## Замеры (если делали)
Метрика | До | Цель
## Топ-проблемы
### [P0] N+1 на /api/users
Файл: ...
Импакт: 50ms → 5ms (на 100 пользователях)
Усилия: S
Фикс: добавить `include: { posts: true }`
## P1
...
## P2 / cosmetic
...
Принципы
- Цифры важнее ощущений
- Сначала замерь, потом оптимизируй
- Микро-оптимизация в cold path = трата времени
- Не оптимизируй "на всякий случай" — введёт сложность, не выгоду
Похожие промты
site / auditFeatured
Аудит производительности (Core Web Vitals)
Глубокая проверка LCP, INP, CLS с привязкой к коду и приоритизированным планом исправлений.
performancecore web vitalslighthouse
Открыть
Продвинутый30-60 мин
site / auditFeatured
Мастер-аудит сайта: 6 измерений за один проход
Orchestrator-аудит по 6 направлениям: UX, accessibility, performance, SEO, brand consistency, security. Quick scan + deep dive + приоритизированный план + композитная оценка + roadmap.
auditorchestratorux
Открыть
Продвинутый2-4 часа
site / audit
Performance budget по типам страниц
Бюджеты JS/CSS/images для разных типов страниц, целевые Web Vitals, enforcement в CI с конкретными порогами.
performancebudgetci
Открыть
Продвинутый1-2 часа