/ Nweon / 0浏览

Quest研发实战:如何用Perfetto进行App性能分析



映维网
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

  1. This post has no comment yet

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注