awesome-everything EN
↑ Обратно к восхождению

Производительность

Performance capstone: полное расследование от начала до конца

Суть Capstone — проведи полное performance-расследование реального медленного пути от начала до конца: сначала измерь, найди одну доминирующую цену, почини на правильном слое, verify под той же нагрузкой и enforce выигрыш в CI.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 240 min

Ты изучил семь инструментов. Здесь они становятся одним рефлексом. Возьми реальный медленный путь — медленный эндпоинт, тяжёлую страницу, отстающую задачу — и прогони полный цикл, на котором построен трек: измерь до того как что-либо трогать, найди единственную доминирующую цену, почини на слое, где она живёт, verify под той же нагрузкой и оставь после себя гейт, чтобы она не вернулась тихо.

Цель

Преврати весь трек в одно воспроизводимое расследование: инструментируй, локализуй доминирующую цену (отказываясь гадать), классифицируй её форму, почини на правильном слое, докажи выигрыш числами before/after под идентичной нагрузкой и enforce так, чтобы регрессия не могла тихо повториться.

Проект
0 из 7
Цель

Выбери один по-настоящему медленный путь в реальной системе (медленный API-эндпоинт, тяжёлый веб-route или отстающую фоновую задачу — свой сервис или open-source приложение) и доведи его до заявленного таргета, прогнав полный цикл Profile → Classify → Fix → Verify → Enforce, починив на правильном слое и доказав каждый шаг измерениями, а не интуицией.

Требования
Критерии приёмки
  • Таблица before/after, измеренная под той же репрезентативной нагрузкой: таргет-SLI плюс метрика доминирующей цены (например flat% хотспота, rate аллокаций, число запросов или KB bundle). Числа, не оценки.
  • Доказательство, что фикс лёг на правильный слой: переснятый профиль/лог/bundle показывает ТУ ЖЕ доминирующую цену сниженной — а не улучшенную другую метрику и не просто замаскированный симптом.
  • Короткий разбор по Амдалу: доля доминирующей цены от общего, потолок ускорения, который она задавала, и отвергнутый неправильный подозреваемый с уликами, которые его исключили.
  • Работающий CI-гейт (или алерт), который завалился бы, вернись эта конкретная регрессия, с порогом и заметкой о том, как он выбран.
Senior-стретч
  • Сцепи второй фикс: после устранения первой доминирующей цены переснимай профиль — новая доминирующая цена обычно другая (аллокация ушла, теперь 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 как устойчивое свойство, а не разовый проект.

хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources2
expand
  1. 01
  2. 02

Trademarks belong to their respective owners. Editorial reference only.