#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