Android Studio 包含一个用于 Simpleperf 的图形前端,记录在 使用 CPU Profiler 检查 CPU 活动 中。大多数用户会选择使用它而不是直接使用 Simpleperf。
如果您更喜欢使用命令行,Simpleperf 是 NDK 中包含的多功能命令行 CPU 分析工具,适用于 Mac、Linux 和 Windows。
有关完整文档,请从 Simpleperf 的 README 开始。
Simpleperf 提示和技巧
如果您刚开始使用 Simpleperf,以下是一些您可能会发现特别有用的命令。有关更多命令和选项,请参阅 Simpleperf 命令和选项参考。
查找执行时间最长的共享库
您可以运行此命令以查看哪些 .so
文件占用了最大的执行时间百分比(基于 CPU 周期数)。这是在开始性能分析会话时运行的第一个好命令。
$ simpleperf report --sort dso
查找执行时间最长的函数
确定了哪个共享库占用执行时间最多后,您可以运行此命令以查看在该 .so
文件的函数中执行的时间百分比。
$ simpleperf report --dsos library.so --sort symbol
查找线程中花费的时间百分比
.so
文件中的执行时间可以在多个线程之间分配。您可以运行此命令以查看在每个线程中花费的时间百分比。
$ simpleperf report --sort tid,comm
查找在对象模块中花费的时间百分比
在找到执行时间最多的线程后,可以使用此命令隔离这些线程中执行时间最长的对象模块。
$ simpleperf report --tids threadID --sort dso
查看函数调用之间的关系
调用图提供了 Simpleperf 在分析会话期间记录的堆栈跟踪的可视化表示。
您可以使用 report -g
命令打印调用图,以查看哪些函数被其他函数调用。这有助于确定一个函数本身是否缓慢,还是因为它调用的一个或多个函数很慢。
$ simpleperf report -g
您还可以使用 Python 脚本 report.py -g
启动一个交互式工具来显示函数。您可以单击每个函数以查看在它的子函数中花费了多少时间。
分析使用 Unity 构建的应用程序
如果您分析的是使用 Unity 构建的应用程序,请确保按照以下步骤使用调试符号构建该应用程序
- 在 Unity 编辑器中打开您的 Android 项目。
- 在 Android 平台的 **构建设置** 窗口中,确保选中 **开发构建** 选项。
- 单击 **播放器设置** 并将 **剥离级别** 属性设置为 **禁用**。