我正在尝试查找 android 中每个 Activity 的 UI 渲染时间。我知道可以使用 systrace 或 perfetto 来分析性能。但问题是从那个巨大的图表中找到 UI 渲染部分。谁能帮我从 systrace 或 perfetto 找到 UI 渲染时间。
问问题
274 次
1 回答
0
System Trace 包括设备上运行的所有进程的数据,因此首先您需要找到相关进程。这里有几个地方可以帮助您入门:
- 您的应用程序进程。该名称应类似于 com.your.app。展开该进程,然后您要关注主线程(与进程名称相同)和一个名为 RenderThread 的线程。 Android Studio 中的 RenderThread 和主线程截图
- SurfaceFlinger进程。这是一个在 Android 设备上运行的进程,负责将表面合成到显示器上。扩展该进程并查找其主线程和无数计数器(例如 VSYNC、SurfaceView),以帮助您解决渲染问题。 Perfetto 中 SurfaceFlinger 计数器的屏幕截图
要准确了解导致 UI 呈现问题的原因,需要了解您的应用程序的工作原理以及一些反复试验。这些视频可能会对您有所帮助:
- 使用 Systrace 进行性能分析:https ://youtu.be/9kNhB_z704I
- 在 Android Studio 中使用 System Trace 解决应用程序性能问题(本文重点介绍 Android Studio):https ://youtu.be/EjmIit_amnE
- 调试应用程序性能(这个有点旧,仍然使用旧的 systrace 工具):https ://youtu.be/qXVxuLvzKek
于 2020-08-26T23:41:28.327 回答