Производительность Jetpack Compose

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

Тестирование производительности Jetpack Compose

Чтобы сравнить производительность Jetpack Compose и Views, мы используем основные тесты производительности, которые фокусируются на важных путях пользователей, таких как холодный запуск приложения или прокрутка списка или сетки с изображениями. Для этого мы используем приложение Pokedex с открытым исходным кодом, сравнивая его реализации Views и Compose.

Эти тесты показывают, что Compose соответствует производительности Views по задержкам при прокрутке, начиная с Compose 1.9.0 (достигая 0 % задержек на Pixel 6).

Разница в количестве зависаний между Compose и View в процентных пунктах по версиям Compose (чем ниже, тем лучше)
Версия ComposeУстройствоИзбыточное количество зависаний по сравнению с просмотрами (процентные пункты)
1.3.3Pixel 3a+0,35
1.4.3Pixel 3a+0,41
1.5.4Pixel 3a+0,42
1.6.8Pixel 3a+0,21
1.7.8Pixel 3a+0,36
1.8.0Pixel 3a+0,38
1.9.0Pixel 3a0
1.10.0Pixel 3a0
1.11Pixel 60
1.12Pixel 60
Рисунок 1. Начиная с версии 1.9.0, Compose сопоставляет задержки прокрутки представлений.

Дополнительные показатели и информацию о наших методологиях можно найти в статье Контрольные показатели Hero.

Основные понятия

Вот некоторые из ключевых концепций производительности в Compose:

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

Правильно настройте приложение

Если приложение работает плохо, возможно, проблема в конфигурации. Для начала проверьте следующие настройки:

  • Выполните сборку в режиме выпуска с помощью R8. Попробуйте запустить приложение в режиме выпуска. Режим отладки позволяет выявить многие проблемы, но снижает производительность и может затруднить обнаружение других неполадок. Также рекомендуем включить оптимизацию и сжатие с помощью компилятора R8, чтобы обеспечить высокую производительность и эффективность конечной сборки.
  • Используйте профили базовой конфигурации. Они повышают производительность за счет предварительной компиляции кода для алгоритмов достижения цели. В Compose есть профиль по умолчанию, но в идеале нужно создать профиль для конкретного приложения. Подробнее о профилях базовой конфигурации…

Инструменты

Ознакомьтесь с набором инструментов, которые помогут вам измерить и проанализировать производительность вашего приложения Compose.

Рекомендации

При разработке приложения с помощью Compose помните о следующих рекомендациях:

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

Просмотры

Если вы работаете с представлениями, а не с Compose, ознакомьтесь с руководством Как повысить производительность макета.

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