您可以使用两种主要方法收集性能剖析文件:手动收集性能剖析文件和 ProfilingManager API。
- 手动收集性能剖析文件是指在本地设备上手动运行 Perfetto 以记录性能剖析文件。您可以使用命令(如 使用 Perfetto 记录系统跟踪中所述)或使用“快捷设置”功能块(如使用“快捷设置”功能块进行记录中所述)来执行此操作。
ProfilingManager可让应用在生产环境中收集性能剖析文件。
我们建议您使用 ProfilingManager 来收集和分析来自许多用户的数据,或调试罕见问题。不过,对于更容易重现的问题,手动分析可能是更好的选择。
下表显示了这两种记录性能剖析文件的方法之间的区别:
| ProfilingManager | 手动收集性能剖析文件 | |
|---|---|---|
| 性能剖析文件计时控制 | 更多 | 更少 |
| 性能剖析文件来源 | 本地设备和公开用户 | 仅限本地设备 |
| 性能剖析文件输出 | 已隐去 | 未隐去 |
| 基于事件的分析 | 是 | 否 |
| 性能剖析文件可定制性 | 更少 | 更多 |
| 可伸缩性 | 高 | 低 |
以下部分简要介绍了性能剖析文件记录方法之间的区别。
性能剖析文件计时控制
与手动分析相比,ProfilingManager API 可以更好地控制应用何时开始或停止性能剖析文件,而手动分析可能难以控制计时性能剖析文件的初始化。ProfilingManager 还可以更轻松地分析意外行为,因为即使您无法在本地重现该行为,也可以收集性能剖析文件。
性能剖析文件来源
借助 ProfilingManager,您可以从公开用户那里收集数据,以查找和修复性能问题。相比之下,手动分析仅允许您在自己的设备上重现问题。
性能剖析文件输出
ProfilingManager 和手动收集会生成不同类型的性能剖析文件输出:
ProfilingManager会生成已隐去的轨迹。已隐去的轨迹会显示有关应用进程的信息,但会隐藏系统中其他应用的数据。由于ProfilingManager会先收集并隐去轨迹,然后再返回轨迹,因此您可以从公开用户那里收集轨迹,同时通过不显示其他应用的数据来保护他们的隐私。手动收集性能剖析文件会生成未隐去的轨迹。手动记录系统轨迹时,输出可能包含系统上运行的所有进程。虽然这些未隐去的跟踪记录提供了更完整的数据以进行调试,但出于隐私问题方面的考虑,您只能在本地访问它们。
基于事件的分析
当发生特定事件(例如“应用无响应 (ANR)”错误或应用启动)时,ProfilingManager 还可以收集性能剖析文件。ProfilingManager
将处理基于事件的收集的性能剖析文件的启动和停止。
性能剖析文件可定制性
手动分析提供最多的自定义选项,而 ProfilingManager 提供的自定义选项较少。
可伸缩性
ProfilingManager 是扩缩跟踪的最佳方式,因为它是唯一允许应用开发者记录公开用户性能剖析文件的选项。借助
ProfilingManager,您可以设置大规模的轨迹收集和分析。
手动分析仅限于本地使用。