Oculus开发:用Unreal Insights快速发现瓶颈、性能峰值、线程模式等
可允许你快速发现瓶颈、性能峰值和线程模式等等
(映维网 2021年07月13日)Unreal Insights是一个优秀的剖析工具,可允许你快速发现瓶颈、性能峰值和线程模式等等。Oculus就建议,为Quest构建游戏或应用的Unreal开发者可以将它纳入至自己的工具箱中。设置过程非常简短,而且是一劳永逸。下面这篇博文将向你介绍具体的操作步骤。
1. 要求
-
Unreal 4.24版本及以上
-
在内置开发应用中启用跟踪功能(默认情况下已启用)
-
构建或下载Unreal Insights可执行文件(< CloneDir>\UnrealEngine\Engine\Binaries\Win64\UnrealInsights.exe and Solution ‘UE4’ > Programs > UnrealInsights in solution explorer)
2. 步骤
第一步. 安装开发应用并验证是否存在/sdcard/UE4Game/< ProjectName>。你第一次可能需要以二进制形式启动游戏,以创建关联的UE4项目目录。
第二步. 指示adb经由设备通过USB建立的TCP连接传递(Unreal Insights侦听TCP端口1980):adb reverse TCP:1980 TCP:1980
第三步. 编辑UE4CommandLine.txt文件以执行所需操作:
-
在< CloneDir>\UnrealEngine\Engine\Build\Android\UE4Game中找到模板文件
-
找到UE4CommandLine.txt.template并复制/粘贴它,然后删除末尾的.template扩展名
-
随意修改这一文件(请参见这些步骤下面的格式作为指南)
第四步. 将所需的UE4CommandLine.txt文件复制到项目的根目录
-
Adb push UE4CommandLine.txt/sdcard/UE4Game/< ProjectDir>/
第五步. 打开UnrealInsights.exe,如果需要,勾选“Auto-start analysis for LIVE trace sessions”
第六步. 戴上头显并运行map。这时你应该可以在Unreal Insights窗口看到相关的跟踪。
上面显示的每个dir/flag的注释:
-
< ProjectName>:只是Unreal项目的名称,它匹配/sdcard/UE4Game/< ProjectName>
-
< UProjectName>:UProjectName匹配输出二进制文件(由引擎指定),所以你可以只使用APK名称或在游戏目录中找到.uproject文件。
-
< MapName>:这是可选项,但它允许你在每个map的基础上自定义启动参数。如果你知道map的名字,你可以把它放在这里。提示:如果你有一个正在使用的基准场景,你可以只为所述map设置跟踪,这样跟踪开销就不会影响常规map的其他剖析。这非常棒,因为你可以将launch arg文件保持在相同的位置,不必在不同的play type之间删除或重命名它。
-
-trace:允许你为跟踪定义要接入的通道。以下是剖析时常见的组合:
-
详细:log,counters,cpu,frame,bookmark,file,loadtime, gpu,rhicommands,rendercommands,object
-
一般:counters,cpu,frame,bookmark,gpu
-
附加:Stats和Loadtime
-
-
-statnamedevents:当与-trace=cpu选项结合使用时,这将激活更多的cpu计时事件
-
-tracehost:运行Unreal Insights实例的主机的IP地址(127.0.0.1)
-
-tracefile:可以在.trace文件转储的设备定义本地路径。你可以将文件放在一个静态位置,每次覆盖以保留最新的跟踪。只需“adb pull/sdcard/UE4Game/MostRecentTraceCapture.utrace”。你同时可以把它放在projectdir中,这样你就可以为你正在工作的每个UE内容保留最新的跟踪
作为一个例子,基于VR模板构建了一个名为QuestUnrealDemo的快速项目,并将默认map设置为MotionControllerMap。完整的包名是com.YourCompany.QuestUnrealDemo。
第七步:将更新的UE4CommandLine.txt文件推送到项目根目录:Adb push UE4CommandLine.txt/sdcard/QuestUnrealDemo/
第八步:启动Unreal Insights并选中“Auto-start analysis for LIVE trace sessions”复选框(如果需要)。
第九步:启动游戏。实时跟踪将在Unreal Insights窗口中启动。
3. 建议
默认的PushCommandLine.bat文件可能会推送到错误的位置。如果你不想在每次进行更改时键入adb push命令,你可以编辑文件以推送到所需的位置。如果你需要经常更改文本文件,这会非常有用。脚本只包括:
-
%ANDROID\u HOME%\platform tools\adb.exe push UE4CommandLine.txt/mnt/sdcard/UE4Game/QuestUnrealDemo/UE4CommandLine.txt
-
%ANDROID\u HOME%\platform tools\adb.exe shell am force stop com.YourCompany.QuestUnrealDemo
-
%ANDROID\u HOME%\platform tools\adb.exe shell am start-n com.YourCompany.QuestUnrealDemo/com.epicgames.ue4.GameActivity
4. 其他有用的launch Flag:
-
-NoSoun
-
-NoTextureStreaming
-
-NoVerifyGC
-
-Benchmark
-
-ResX/ResY
-
-Dumpmovie
值得一提的是,关于Unreal Insights,你可以参阅Unreal官方的“Unreal Insights介绍”。另外,你总是可以通过Oculus开发者论坛寻找,讨论和分享有用的开发建议。