Я пытаюсь найти время рендеринга пользовательского интерфейса для каждого действия в Android. Я узнал, что может анализировать производительность с помощью systrace или perfetto. Но проблема заключается в том, чтобы найти часть рендеринга пользовательского интерфейса на этом огромном графике. Может ли кто-нибудь помочь мне найти время рендеринга пользовательского интерфейса из systrace или perfetto.
Может ли кто-нибудь помочь мне найти время рендеринга пользовательского интерфейса в perfetto/systrace?
Ответы (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