сам долго искал, но походу пока что ничего нет. Можно попробовать делать снепшот и логгировать всё что он ловит, но это такое себе. Пока только с помощью профайлера по косвенным признакам удаётся отлавливать лишние рекомпозиции.
Мне кажется это невозможно, т.к. "лишняя" рекомпозиция вовсе не лишняя, просто так написан код🤷♂ Со временем шишки будут набиты и это станет всё очевидным, как например "ничего не делать в onBind или onDraw"
Естественно, "лишний" это субъективное понятие. Но было бы неплохо иметь инструмент, помогающий отслеживать какие именно блоки рекомпозируются. Тогда можно будет вручную искать вот эти "лишние" рекомпозиции.
Не ну если прям очень надо, можно в каждую функцию запихнуть по счётчику и смотреть.
https://github.com/chrisbanes/tivi/blob/main/common-ui-compose/src/main/java/app/tivi/common/compose/Debug.kt
>т.к. "лишняя" рекомпозиция вовсе не лишняя, просто так написан код Оно иногда совсем не очевидно, у меня например вот такой кусок кода был и из-за него лэзилист рекомпозился по 5-10 раз в секунду, gc с ума сходил. Вроде ничего не мутируется там, но почему-то лэзилисту это не нравилось очень
Это совсем неочевидный код, с которым можно было поднасрать везде. Не отменяет необходимости в тулинге для работы с композицией, но тут явно беда не в "неочевидности" рекомпозиции.
Обсуждают сегодня