Ответ вслух Middle Отладка и профилирование спрашивают часто обновлено

Приложение тормозит: ваш план

Вопрос

Пользователи жалуются, что экран каталога тормозит. Опишите, как вы будете искать и исправлять проблему.

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Образцовый ответ: «Сначала воспроизвожу проблему на release-сборке и недорогом Android, потому что debug и флагман искажают картину. Включаю Perf Monitor: если проседает JS, иду в профайлер React DevTools и смотрю, что рендерится при прокрутке и нажатиях.

Что должно прозвучать в ответе

  • Воспроизвести на release-сборке на слабом устройстве

  • Perf Monitor: какой поток проседает, JS или UI

  • Профайлер React: какие компоненты рендерятся и почему

  • Исправления: мемоизация, состояние ниже, селекторы, виртуализация списка, картинки нужного размера

  • Нативные профайлеры, если проблема в UI-потоке

  • Повторный замер и защита от регрессий

Что могут спросить следом

  • Как понять, что дело в картинках?
  • Как не допустить регрессию в будущем?

Разбор

Образцовый ответ: «Сначала воспроизвожу проблему на release-сборке и недорогом Android, потому что debug и флагман искажают картину. Включаю Perf Monitor: если проседает JS, иду в профайлер React DevTools и смотрю, что рендерится при прокрутке и нажатиях. Типичные находки: строки списка не мемоизированы, в пропсах новые колбэки и стили, состояние фильтров лежит в экране и перерисовывает всё. Если проседает UI-поток, смотрю нативным профайлером: часто это огромные изображения, тени и вложенность. Исправляю по одной причине и меряю снова. Чтобы не вернуться к этому, добавляю метрики производительности в мониторинг и проверяю ключевые экраны перед релизом»

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.