Editor
在 UE4Editor.exe
启动项目时添加 -Trace=CPU -tracehost=127.0.0.1
参数:
1 | UE4Editor.exe Client.uproject -Trace=CPU -tracehost=127.0.0.1 |
Insight 中就会自动捕获:
Unreal Insights 实时分析
上一节提到了使用 SessionFrontEnd
实时分析 Android 的方法,在实际的测试当中发现不太稳定,会造成游戏的 Crash,UE 在新的引擎版本中也提供了新的性能分析工具 Unreal Insights,可以更方便和直观地进行 Profile。
文档:
同样也需要端口映射,需要把 PC 的 1980 端口映射到设备上:
1 | adb reverse tcp:1980 tcp:1980 |
然后需要给 Android 设备添加启动命令:
1 | ../../../FGame/FGame.uproject -Messaging -SessionOwner="lipengzha" -SessionName="Launch On Android Device" -iterative -tracehost=127.0.0.1 -Trace=CPU |
在 PC 上开启 Unreal Insights,在手机上启动游戏,即可实时捕获:
Unreal Insights 也可以实时捕获 PIE 的数据,需要在 Editor 启动时添加 -trace
参数:
1 | UE4Editor.exe PROJECT_NAME.uproject -trace=counters,cpu,frame,bookmark,gpu |
在启动游戏后在 Unreal Insights 里通过 New Connection
监听 127.0.0.1 即可。
SessionFrontEnd 实时分析
有几个条件:
- 需要 USB 连接 PC 和手机
- 需要安装 adb
首先需要映射端口,因为 SessionFrontEnd
是通过监听端口的方式来与游戏内通信的,手机和 PC 并不在同一个网段,所以需要以 adb 的形式把 PC 的监听端口转发给手机的端口。
SessionFrontEnd 的监听端口可以通过对 UE4Editor.exe
的端口分析获取:
1 | C:\Users\lipengzha>netstat -ano | findstr "231096" |
需要把 PC 的 1985 端口映射到 Android 的 1985 端口,这样手机上 APP 启动时,连接 0.0.0.0
的1985
端口就可以连接到 PC 上的端口。
通过 adb 命令来执行:
1 | adb reverse tcp:1985 tcp:1985 |
然后需要给手机上 App 指定启动参数:
1 | ../../../FGame/FGame.uproject -Messaging -SessionOwner="lipengzha" -SessionName="Launch On Android Device" |
把这些文本保存为 UE4Commandline.txt
文件,放到项目的数据目录下即可,具体路径为:
1 | /sdcard/UE4Game/PROJECT_NAME/ |
之后直接启动 App,在 PC 上的 SessionFrontEnd
中就可以看到设备的数据了。