Инструменты

Бывает сложно понять, в чем заключается проблема с производительностью и какой код нужно оптимизировать. Сначала воспользуйтесь инструментами, которые помогут определить, где именно возникла проблема.

Инспектор макетов

Используйте инспектор макетов, чтобы проверить макет и посмотреть количество рекомпозиций.

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

Рекомпозиция сама по себе не является плохой; однако неожиданная рекомпозиция может стать проблемой. Помните, что количество рекомпозиций не заменяет собой тесты производительности. Пропуск composable-функции приводит к дополнительным затратам на сравнение параметров и таблицы слотов. Кроме того, если композиция уже запланирована, пропуск одной промежуточной composable-функции экономит мало времени по сравнению с откладыванием быстро меняющихся операций чтения состояния до этапов макета или отрисовки. Всегда проверяйте изменения производительности с помощью трассировки композиции и Macrobenchmark.

Дополнительную информацию можно найти в документации по количеству рекомпозиций в инспекторе макетов.

Трассировка композиции

Используйте трассировку композиции, чтобы отслеживать composable-функции в трассировке системы. Трассировка – это лучший источник информации для начала работы над проблемой производительности. Они позволяют сформировать гипотезу о том, в чём заключается проблема и с чего начать поиск.

Дополнительные ресурсы