TGViewer
Android Good Reads Android Good Reads @droidgr · 4.02K subscribers
Post #1972 3.34K
Performance In Jetpack Compose — Stability & Immutability

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

👉 Включаем отображение количества рекомпозиций в Layout Inspector и находим проблемное место
👉 Разбираемся, является ли проблемная функция restartable или skippable compose функцией, собрав приложение с параметром -PcomposeCompilerReports.
👉 В репорте (app_release-composables.txt) находим проблемную функцию.
👉 Автор обнаружил, что передаваемые параметры помечены как unstable, что означает, что рекомпозиция будет происходить каждый раз, даже если параметры не поменялись. Для более глубокого анализа обращаемся к репорту (app_release-classes.txt)
👉 Проблема, как это часто бывает, заключается в реализации коллекций, которые помечаются как unstable. Компилятор Compose не может быть уверен в иммутабельности этих классов и маркирует их как unstable
👉 Мы можем исправить это, добавив аннотацию @Immutable или @Stable к параметру, чтобы показать Compose компилятору, что мы уверены в иммутабельности этих реализаций

Кстати, в версии 1.6 Compose появится strong skipping mode, который может снизить количество таких проблем
Medium Performance In Jetpack Compose — Stability & Immutability When a state change occurs in Jetpack Compose, it can automatically skip composable functions whose parameters have not changed.
  • 👍 6
  • 🔥 2
  • 😎 1
More from @droidgr
  1. Sep 30, 2026🏗 Строим мультиагентные системы для разработки на Podlodka AI Crew Инженерные задачи редк…
  2. Aug 6, 2026Если вам всё ещё интересна мобильная разработка, рекомендую подписаться на канал Kotlin Ad…
  3. Aug 4, 2026Post #2504
  4. Jul 26, 2026Как я играю в экосистему продуктов Наиболее близка мне сейчас тема ухода за животными. Я м…
  5. Jul 26, 2026Привет! Как вы могли заметить, я более не помогаю вести данный канал. Если вам понравилось…
  6. Jun 10, 2026Немного про продуктивность без AI. Старый добрый помодоро таймер, но ужесточенный трекинго…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →