# Performance Engineering

> Исследовать измеренную проблему производительности и оценить прицельную оптимизацию кода, запросов, отрисовки или использования ресурсов. Применять для поиска узкого места и изменений; проектирование нагрузки и оценка измерений ёмкости или регрессий относятся к тестированию производительности.

- Skill: `fbakiyev/performance-engineering` (Agent Skill)
- Install (CLI): `npx skillmds@latest add fbakiyev/performance-engineering`
- Raw SKILL.md: https://api.skillmd.com/api/skills/fbakiyev/performance-engineering/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: fbakiyev (https://skillmd.com/u/fbakiyev)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/fbakiyev/performance-engineering

---


# Анализ и улучшение производительности

## Получить сопоставимые исходные измерения

Определи затронутую пользовательскую операцию, границы метрики, цель, нагрузку и окружение. Зафиксируй объём и распределение данных, параллелизм или интенсивность поступления запросов, состояние кеша, ошибки и существенные ограничения ресурсов. Без пригодных исходных измерений сначала добавь или собери измерения; не заявляй об оптимизации только по интуиции.

## Исследовать до изменения

- Разделяй выполнение сервиса, ожидание в очереди, ожидание зависимостей, сетевое время и отрисовку клиента вдоль затронутого пути. Высокое потребление ресурса может быть следствием, а не ограничивающим этапом. Сопоставляй наблюдения и проверяй конкретную причинную гипотезу.
- Изучай характерные медленные случаи вместе с агрегатами. Хвост распределения могут определять разные операции или размеры данных; улучшенное среднее может скрыть регрессию именно той операции, на которую жалуются пользователи.
- Сравнивай одинаковые условия. Прогретый кеш, меньший набор данных, меньшая подаваемая нагрузка или выросшая доля ошибок могут создать видимость ускорения без улучшения системы. Сохраняй в сравнении корректность, полноту результата и проверки авторизации.
- Предлагая кеширование, пакетную обработку, параллелизм или сокращение обменов, укажи возникающие компромиссы согласованности, инвалидации, памяти и обработки сбоев, которые относятся к изменению. Кеш должен сохранять границы видимости данных; неограниченный параллелизм может перенести узкое место в зависимость.
- По возможности меняй одну существенную причину за раз и повторяй измерения достаточно, чтобы увидеть разброс между запусками. При необходимости оставляй сравнение без изменения; не приписывай патчу каждое наблюдаемое колебание.

Не оптимизируй посторонние пути только потому, что они попали в профилировщик. Предпочитай измеримое ограниченное улучшение широкой переработке. Для зависящих от версии механизмов оптимизации используй документацию движка или framework.

## Результат и проверка

Верни диагноз, прицельное изменение или обоснованную рекомендацию, воспроизводимые условия измерения, результаты до и после и существенные компромиссы. Отличай гипотезу об узком месте от вывода, подкреплённого изменением одного из условий.

Вместе со скоростью проверь функциональный инвариант, затронутый оптимизацией. Не жертвуй корректностью или безопасностью незаметно: предлагаемое ослабление требует явного решения проекта в рамках действующих правил.

Укажи оставшиеся узкие места и ограничения тестового окружения без прогноза неизмеренной ёмкости production. `templates/performance-report.md` необязателен и применяется при доступном репозитории; существенный результат — доказательства и их трактовка.

