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