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

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


person New Developer    schedule 24.08.2020    source источник


Ответы (1)


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

  • Процесс вашего приложения. Имя должно выглядеть как 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< /а>
person Yi Yang    schedule 26.08.2020