Производительность
Performance capstone: полное расследование от начала до конца
Ты изучил семь инструментов. Здесь они становятся одним рефлексом. Возьми реальный медленный путь — медленный эндпоинт, тяжёлую страницу, отстающую задачу — и прогони полный цикл, на котором построен трек: измерь до того как что-либо трогать, найди единственную доминирующую цену, почини на слое, где она живёт, verify под той же нагрузкой и оставь после себя гейт, чтобы она не вернулась тихо.
Преврати весь трек в одно воспроизводимое расследование: инструментируй, локализуй доминирующую цену (отказываясь гадать), классифицируй её форму, почини на правильном слое, докажи выигрыш числами before/after под идентичной нагрузкой и enforce так, чтобы регрессия не могла тихо повториться.
Выбери один по-настоящему медленный путь в реальной системе (медленный API-эндпоинт, тяжёлый веб-route или отстающую фоновую задачу — свой сервис или open-source приложение) и доведи его до заявленного таргета, прогнав полный цикл Profile → Classify → Fix → Verify → Enforce, починив на правильном слое и доказав каждый шаг измерениями, а не интуицией.
- Таблица before/after, измеренная под той же репрезентативной нагрузкой: таргет-SLI плюс метрика доминирующей цены (например flat% хотспота, rate аллокаций, число запросов или KB bundle). Числа, не оценки.
- Доказательство, что фикс лёг на правильный слой: переснятый профиль/лог/bundle показывает ТУ ЖЕ доминирующую цену сниженной — а не улучшенную другую метрику и не просто замаскированный симптом.
- Короткий разбор по Амдалу: доля доминирующей цены от общего, потолок ускорения, который она задавала, и отвергнутый неправильный подозреваемый с уликами, которые его исключили.
- Работающий CI-гейт (или алерт), который завалился бы, вернись эта конкретная регрессия, с порогом и заметкой о том, как он выбран.
- Сцепи второй фикс: после устранения первой доминирующей цены переснимай профиль — новая доминирующая цена обычно другая (аллокация ушла, теперь cache- или round-trip-bound). Прогони цикл снова и задокументируй, как bottleneck сдвинулся.
- Напиши runbook расследования на одну страницу: пятишаговый цикл, какой артефакт снимать под каждую форму цены, лестница фиксов под форму и чеклист verify/enforce — пригодный для on-call инженера, который не видел этот сервис.
- Выбери путь, медленный по ДВУМ осям (например серверный эндпоинт, питающий тяжёлый клиентский route), и покажи, как тот же цикл применяется и на бэкенде (profile/N+1), и на фронтенде (bundle budget), с раздельными числами before/after для каждого.
- Добавь непрерывный страж: canary load-тест в CI, который диффает профиль или bundle против main и валит сборку, если flat-доля любой функции или bundle любого route вырастает выше заданного порога.
Это дисциплина, к которой вёл весь трек, прогнанная один раз от начала до конца: измерь до того как что-либо трогать, дай уликам (и Амдалу) выбрать ту единственную цену, что важна, классифицируй её форму, почини на слое, где эта цена создаётся, verify под идентичной нагрузкой и оставь CI-гейт, чтобы выигрыш сохранился. Сделай это один раз на реальном медленном пути — и цикл станет рефлексом, который ты приносишь в каждый будущий инцидент: performance как устойчивое свойство, а не разовый проект.