Как отслеживать лишние рекомпозиции? Есть какая-нибудь удобная тулза для этого?

7 ответов

12 просмотров

сам долго искал, но походу пока что ничего нет. Можно попробовать делать снепшот и логгировать всё что он ловит, но это такое себе. Пока только с помощью профайлера по косвенным признакам удаётся отлавливать лишние рекомпозиции.

Мне кажется это невозможно, т.к. "лишняя" рекомпозиция вовсе не лишняя, просто так написан код🤷‍♂ Со временем шишки будут набиты и это станет всё очевидным, как например "ничего не делать в onBind или onDraw"

Кирилл-Романенко Автор вопроса
Dmitry
Мне кажется это невозможно, т.к. "лишняя" рекомпоз...

Естественно, "лишний" это субъективное понятие. Но было бы неплохо иметь инструмент, помогающий отслеживать какие именно блоки рекомпозируются. Тогда можно будет вручную искать вот эти "лишние" рекомпозиции.

Кирилл Романенко
Естественно, "лишний" это субъективное понятие. Но...

Не ну если прям очень надо, можно в каждую функцию запихнуть по счётчику и смотреть.

https://github.com/chrisbanes/tivi/blob/main/common-ui-compose/src/main/java/app/tivi/common/compose/Debug.kt

Dmitry
Мне кажется это невозможно, т.к. "лишняя" рекомпоз...

>т.к. "лишняя" рекомпозиция вовсе не лишняя, просто так написан код Оно иногда совсем не очевидно, у меня например вот такой кусок кода был и из-за него лэзилист рекомпозился по 5-10 раз в секунду, gc с ума сходил. Вроде ничего не мутируется там, но почему-то лэзилисту это не нравилось очень

Dmitry Fabrichny
screenshot >т.к. "лишняя" рекомпозиция вовсе не лишняя, прост...

Это совсем неочевидный код, с которым можно было поднасрать везде. Не отменяет необходимости в тулинге для работы с композицией, но тут явно беда не в "неочевидности" рекомпозиции.

Похожие вопросы

Обсуждают сегодня

Ребя, тут спрашивают, что лучше использовать для юзербота на java? 👀
Mars BATYA [NYА]
12
D с большой буквы?
Михаил Фрускейт
8
Диски перестали работать почему-то в Нидерландах тогда. 0кб в сек Никто как я понял не сможет посоветовать vds в Нидерландах ?
Stargrapefruit
16
Приветствую, господа! Имеется десяток распределенных географически регионов, в которых крутится инфра. Вопрос: можно ли консулу указывать несколько серверов в retry_join, а не...
Илья 🐸
2
Добрый день, как получить обновленную версию плагина, при отсутствии лицензии octobercms? Хоть и плагин куплен
Artem Dmitrenko
5
что насчет пагинга? на осдеве непонятно(
Vi Chapmann 🪙
26
Накину для размышления… есть значит у нас е2ее чат, есть локальная история. Происходит смена ключей у одной из сторон. Как бы восстановить историю? Ну и опциональное это то чт...
iEvgen =MH=
8
Надеюсь можно будет юзерам рекомендовать покупать старсы через клиенты не от сторов гугла и яблока Так же по идее без комиссии 30%?
Женя 🦦
3
Привет. Так вопрос. Кто занимался защитой своего приложения от копипаста(точнее от кражи части кода)? Софт будет ставиться на сервер клиента, к нему получается будут иметь до...
Artem N
3
как в default.htm компонента указать путь к partial компонета чужого плагина? Надо расширить чужой компонент, который состоит из нескольких partial {% partial "@make_data_and...
Point 111
3
Карта сайта