(
映维网
2021年04月22日
)Perfetto是一个Android性能剖析工具,除了为与Perfetto或ATrace集成的应用提供应用级工具外,它同时提供有关系统事件的信息,例如调度活动。它是systrace的替代品,并且增加了对计数器的支持,更多的事件选择、更长的trace,并提供更好的性能。有关Perfetto的更多信息请访问
这个页面
。
在
Oculus
日前发布的v27操作系统更新中,当开发者模式打开时,Quest和Quest 2默认启用Perfetto。v27操作系统更新同时附带了向Perfetto发送度量的VrApi/GPU。
Quest开发者可以使用Perfetto来剖析应用,以及整个系统的附加情景信息。随着时间的推移,团队计划通过Perfetto公开更多特定于Oculus的数据。
1. 从应用程序发送数据
为了让应用程序中的事件显示在Perfetto trace中,必须使用Perfetto TrackEvents或ATrace对应用程序进行注释。若要为应用程序添加注释,我们建议选择Perfetto TrackEvents作为性能更高的选项。确保Perfetto配置(如下所述)具有适当的TrackEvent或ATrace数据源。
将Perfetto添加到TrackEvents的说明请参阅
这个页面
。
2. Perfetto设置
要记录新的trace,首先需要设置一定的文件。你需要创建一个工作目录。在这里,你将创建Perfetto配置,并在其中写入trace(下面展示了一个带有Python脚本的安装程序,但你可以使用末尾提供的gitbash/WSL/Cygwin脚本)。
第一步:创建一个包含Perfetto配置、脚本和trace输出的工作目录。出于本文的目的,我们将把目录称为perfetto\u traces,但你可以随意命名。
第二步:创建Perfetto配置(config.txt)
在perfetto_traces/config.txt创建一个文本文件
用trace配置填充文件。最好使用Web UI(
https://ui.perfetto.dev/
)来生成成Perfetto配置,然后再进行调整。
在Web UI中,单击Record new trace。
选择要录制的各种数据源。
复制Trace command部分中显示的配置。只复制配置,而不是整个命令。如下所示:
注意:Perfetto app instrumentation和VrApi/GPU度量都是Perfetto TrackEvents的一部分,这是Web UI不支持生成配置的数据源。若要记录,请将以下内容添加到配置中:
注意:Perfetto app instrumentation和VrApi/GPU度量都是Perfetto TrackEvents的一部分,这是Web UI不支持生成配置的数据源。若要记录,请将以下内容添加到配置中:
注意:GPU度量要求adb shell ovrgpuprofiler-r再跟踪记录期间于后台运行。
注意:GPU度量要求adb shell ovrgpuprofiler-r再跟踪记录期间于后台运行。
下面是一个示例配置文件,它将记录VrApi和GPU度量,以及设备发出的任何其他Perfetto TrackEvents。
第三步:创建Python脚本来记录trace(perfetto.py)
在perfetto_traces/perfetto.py创建文本文件
将以下内容粘贴到文件中:
第四步(可选):在 Oculus Developer Hub (ODH)中创建一个自定义命令来运行脚本。
确保Quest接到ODH。
在 My Device选项卡下,单击+ Create Command。
名称:Perfetto;命令:python3
/perfetto_traces/perfetto.py;在新窗口中显示命令输出:选中
有关ODH自定义命令的更多信息请访问
这个页面
。
3. 记录和查看trace
记录trace
确保Quest已接到PC。
运行命令adb devices时,请检查是否列出了你的Quest。
打开你的应用程序,进入你想要的情景模式。
使用Python3运行perfetto.py。这会将配置复制到设备。运行Perfetto,并将记录的trace复制回目录。或者,如果是使用ODH,则在ODH中运行Perfetto自定义命令
你记录的trace将保存到 perfetto_traces/trace.pftrace。
查看trace
打开Web UI(
https://ui.perfetto.dev/
)
单击`Open trace file并选择刚才记录的trace,位置perfetto_traces/trace.pftrace。
提示:通过单击计数器名称旁边的星号,可以将计数器固定到时间线视图的顶部。
提示:通过单击计数器名称旁边的星号,可以将计数器固定到时间线视图的顶部。
4. Git Bash/WSL/Cygwin脚本
如果你在开发中更喜欢gitbash/WSL/Cygwin,请使用下面的脚本,而不是上面提供的python脚本。
在perfetto_traces/perfetto.sh创建一个文本文件
将以下内容粘贴到文件中:
0