Android 发布全新性能分析器,实用性和性能大升级
Android Performance Analyzer (APA) 是 Android 新的 profiler 和 performance analysis 工具主要是用在整个 Android 生态的性能分析特别是偏向App / Game / Vulkan / GPU / 系统级 trace场景。一般它会用在我们熟悉的分析 CPU、GPU、Memory 、Power 、还有 App / Game 与系统行为之间的关系整体偏向系统级性能观测比如CPU core 调度、频率、线程活动、GPU counters、SurfaceFlinger、帧耗时、功耗、截图时间线等。而 APA 其实是 Samsung Austin Research Center (SARC) 和 LunarG 合作开发的它依靠 Perfetto 进行系统跟踪后续还会推出的帧分析/调试功能依赖 LunarG 的 GFXReconstruct 的图形捕获和回放。目前 APA 有两个不同渠道版本一个是独立的轻量级的独立桌面 App另一个是 Android Studio Panda 4 canary 版本及更高版本独立的桌面应 App 不需要 Android Studio 项目和 Gradle 构建也可以使用还提供对录制配置的深度自定义、用于图形分析的内置 Vulkan 层、对 GPU 计数器的深度检查等等支持 Windows、MacOS 和 Linux 上原生运行 。这个独立 App 用的 CMP 做的哦基本功能APA 可以选择在启动时或手动触发时从设备捕获跟踪数据App 上可以选择跟踪中捕获的 GPU 计数器和其他数据如果需要自定义还可以配置duration_ms: 10000 buffers { size_kb: 65536 fill_policy: RING_BUFFER } data_sources { config { name: linux.ftrace target_buffer: 0 ftrace_config { ftrace_events: sched_switch ftrace_events: sched_wakeup } } }duration_ms: 10000 buffers { size_kb: 65536 fill_policy: RING_BUFFER } data_sources { config { name: linux.ftrace target_buffer: 0 ftrace_config { ftrace_events: sched_switch ftrace_events: sched_wakeup } } }然后运行perfetto --txt -c config.pbtx -o trace_file.perfetto-trace然后通过 APA你就可以在一个 UI 里分析整个系统的运行情况比如 CPU 的频率和上面调度的任务或者检查进程和对应的线程活动对于图形密集型应用APA 提供来自高通、Arm、Imagination 和三星等厂商的 GPU 性能计数器数据你甚至可以跟踪电池和功耗。另外为了准确了解帧的运行时间SurfaceFlinger 事件提供了对「渲染」和「显示合成管线」的深入挖掘涵盖从「初始代码获取」到「最终显示」的所有环节同时借助全新的屏幕截图功能就可以直观看到问题。此之外还可以打开现有的 Perfetto 轨迹缩放时间轴查看细节并使用标尺测量工作和事件的持续时间然后在添加书签和注释甚至将关键轨迹 PIN 到顶部。另外 APA 采用项目模型可以通过 project 跟踪多个测试结果这在收集 A/B 测试和纵向测试的结果比较实用并且可以将所有结果集中在一起最有意思的是利用屏幕截图进行可视化导航APA 可以通过屏幕截图进行导航来梳理时间线通过浏览时间线来快速定位影响性能的区另外APA 还支持渲染通道的 Vulkan Debug Markers*开发者可以直接在 APA 中显示的跟踪和切片中查看从代码库设置的渲染通道名称除此之外还可以利用 AI 构建 SQL 查询以进行自定义分析APA 支持通过 SQL 查询进行跟踪分析并附带一项全新的 Perfetto SQL 技能可以和任何 AI 代理配合使用另外还添加了另一项 Perfetto 分析技能可以回答诸如「为什么我的应用程序启动速度很慢」之类的高级问题帮助在分析复杂跟踪记录时找到切入点。最后还有 FPS 和帧持续时间可以在跟踪中查看 FPS 和帧持续时间当然最重要的是现在 APA 渲染跟踪的速度通常比 Android GPU Inspector 快 6 到 26 倍同时在处理大型跟踪时APA 的稳定性明显更高。比如 Forge 团队就利用 APA 找到了需要批量调用 vkCmdBindDescriptorSets从而将 CPU 设置成本降低了约 50%。反过来又降低了设备的发热量降低了 2-3 倍延长了会话时间然后还利用 APA 发现了将字体和 UI 渲染工作转移到 GPU 的场景提高了可扩展性Netmarble 利用 APA 对游戏进行了微调重点是通过改变着色器的精度来提高性能最终将某些场景的 GPU 渲染成本降低高达 90%Google 自己的 Filament 也类似通过 APA 测试了各种场景找到 GPU 处理能力不足的复杂场景以及如何通过改进纹理压缩和优化几何体来降低复杂度从而达到 60FPS 的目标帧率降低了内存消耗那它和以前 Android 工具链的关系是什么其实 Android 很早就有Perfetto了但是 Perfetto UI 对很多 App / 游戏团队来说还是偏底层工具而 APA 的价值是把 Perfetto 的系统级 trace 能力包装成更面向 Android 开发者的 UI 和工作流。另外之前Android GPU Inspector官方这次也直接拿 APA 和 Android GPU Inspector 做了对比说 APA 渲染 trace 的速度通常比 AGI 快6x 到 26x并且在处理大型 traces 时更稳定说明它也覆盖了 GPU Inspector。最后就是Android Studio System Trace ViewerAPA 会作为 Android Studio Panda 4 Canary 及之后版本的更新版 System Trace Viewer 集成进去也就是也有他就是全新的 System Trace Viewer还支持联动 AI 可以说已经 Android 的性能优化可以更搞笑了。所以我选择下载独立 App 。链接https://developer.android.com/android-performance-analyzer