Тесты производительности

Производительность приложения во время выполнения можно разделить на локальное тестирование и полевое тестирование. Имейте в виду, что обе эти области дают разные результаты и показатели. Пока результаты сами по себе убедительны, такое расхождение приемлемо.

Полевые испытания

Полевые испытания помогут вам понять, как приложение работает с реальными пользователями в реальных условиях. Это важная область, которая помогает понять, как приложение работает в полевых условиях. Вы можете использовать такие инструменты, как Google Play Vitals и Firebase Performance Monitoring, чтобы получать показатели полей от пользователей.

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

Вы также можете использовать ApplicationStartInfo и ApplicationExitInfo чтобы получить от пользователей более подробную информацию о запуске и выходе приложения.

Библиотека AndroidX JankStats позволяет агрегировать и сообщать о медленных и пропущенных кадрах для дальнейшего анализа.

Локальное тестирование

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

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

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

Используйте результаты

Тестирование производительности — это непрерывный процесс. Мы рекомендуем хранить результаты тестов производительности таким образом, чтобы их можно было сравнивать с течением времени.

Вы можете использовать результаты тестов производительности несколькими способами.

  • Улучшение производительности. Используйте результаты измерений, чтобы определить приоритетность улучшения производительности.
  • Предотвращение регрессии. Убедитесь, что в новых выпусках нет снижения производительности.
  • Мониторинг производства. Узнайте, есть ли проблемы, которые вы не заметили во время разработки.

Дополнительные сведения о тестировании производительности среды выполнения Android см. в руководстве по производительности приложений .