Производительность
Performance capstone: тест с выбором ответа
Весь трек сворачивается в один цикл: profile, классифицируй доминирующую цену, фикси на правильном слое, verify, enforce. Каждый вопрос даёт симптом, который задевает сразу два-три юнита, и спрашивает первый ход, который делает сеньор.
Убедись, что умеешь выполнять сквозное решение, ради которого построен трек: не гадать, найти ту единственную цену, которая доминирует, починить там, где она реально живёт, и доказать фикс числами под той же нагрузкой.
Страница checkout тормозит. Сеньору говорят, что JSON-сериализатор «очевидно» и есть узкое место. Что он делает первым и почему?
Flame graph показывает одну функцию, доминирующую по CPU, и внутри неё время уходит в аллокацию памяти и последующий GC. Где живёт устойчивый фикс?
Эндпоинт дашборда делает 1 быстрый запрос на список из 50 заказов, затем ещё 50 запросов, чтобы достать клиента каждого заказа. Каждый запрос — 2 мс. Профилирование самих запросов не показывает ничего медленного. Какова доминирующая цена и правильный фикс?
Сервис ингеста делает один сетевой вызов на событие с ~3 мс фиксированного per-call оверхеда (соединение, auth, сериализация) и ~0.1 мс полезной работы. Throughput упёрся. Предлагают батчить события группами по 100. Какой реальный tradeoff надо озвучить сразу?
На страницу товара добавили библиотеку date-picker на 280 KB (gzip) ради одного календарного виджета. Lighthouse TTI деградировал на mid-tier мобильных. Время ответа сервера не изменилось. Где цена и как не дать ей повториться?
Ты отгрузил фикс, p99 выглядит лучше на твоём ноутбуке, и тикет готов к закрытию. Что ещё должно быть истинно, прежде чем работа реально сделана, по циклу трека?
Каждый вопрос свёлся к одному циклу, на котором построен трек: профилируй до того, как гадать (Амдал ограничивает выигрыш от оптимизации не того), классифицируй доминирующую цену по её форме — аллокация/GC, N+1 round-trip’ы, фиксированная per-op цена, байты на CPU клиента — чини на том слое, где эта цена реально живёт, затем verify под той же нагрузкой и enforce выигрыш в CI. Performance — не проект, который заканчиваешь; это цикл, который продолжаешь крутить.