Кто-нибудь может помочь мне определить время рендеринга пользовательского интерфейса в perfetto / systrace?

#android #performance #systrace #perfetto

#Android #Производительность #systrace #perfetto

Вопрос:

Я пытаюсь найти время рендеринга пользовательского интерфейса для каждого действия в Android. Я узнал, что can анализирует производительность с использованием systrace или perfetto. Но проблема в том, чтобы найти часть рендеринга пользовательского интерфейса на этом огромном графике. Кто-нибудь может помочь мне определить время рендеринга пользовательского интерфейса в systrace или perfetto.

Ответ №1:

Трассировка системы включает данные от всех процессов, запущенных на устройстве, поэтому сначала вам нужно найти соответствующие процессы. Вот пара мест, с которых вы можете начать:

  • Процесс вашего приложения. Имя должно выглядеть как com.your.app. Разверните этот процесс, а затем вы хотите сосредоточиться на главном потоке (то же имя, что и название процесса) и потоке под названием RenderThread. Скриншот RenderThread и основного потока в Android Studio
  • Процесс SurfaceFlinger. Это процесс, запущенный на устройствах Android, отвечающий за компоновку поверхностей на дисплее. Разверните этот процесс и найдите его основной поток и множество счетчиков (например, VSYNC, SurfaceView), чтобы помочь вам устранить проблемы с рендерингом. Скриншот счетчиков SurfaceFlinger в Perfetto

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

  • Анализ производительности с использованием Systrace:https://youtu.be/9kNhB_z704I
  • Устранение неполадок с производительностью приложения с помощью System Trace в Android Studio (этот посвящен Android Studio):https://youtu.be/EjmIit_amnE
  • Отладка производительности приложения (это немного устарело и все еще использует устаревший инструмент systrace):https://youtu.be/qXVxuLvzKek