Choose your operating system:
Windows
macOS
Linux
Unreal Insights 会识别出项目中需要优化的内容。它是一个遥测捕获和分析套件,为您提供以高数据速率从应用程序捕获事件的能力。
Unreal Insights的主要组成部分包括Trace事件、Unreal Trace Server(记录并保存来自应用程序的痕迹),以及Unreal Insights(分析并可视化数据)。
存储的跟踪会话是自描述类型的,并且向后兼容。它们保存在 .utrace
文件中。生成的伴生数据保存在跟踪文件旁的 .ucache
文件中。
设置
你可以直接从虚幻编辑器运行Unreal Insights,方法是找到 工具(Tools) > 运行Unreal Insights(Run Unreal Insights),或者下载引擎的源构建,并找到 Engine/Binaries/Win64 directory
,而Unreal Insights工具将随虚幻引擎一起提供。作为开发人员,如果你已下载虚幻引擎源代码并在本地编译它,你可以通过在开发或发布模式下构建整个虚幻引擎解决方案或直接构建"UnrealInsights"项目来编译它。
你找到或构建 UnrealInsights.exe
后,就可以在你想要用来记录数据或查看实时会话的机器上运行它。
如果在项目启动前启动Unreal Insights,则该项目将自动连接到本地跟踪服务器,并且默认的跟踪通道将被启用。
如果该工具正在远程运行,请通过使用以下命令行选项启动项目,将工具IP地址提供给项目,将变量"X"替换为IP地址:
-tracehost=X
在Mac和Linux上运行远程设备时需要tracehost参数。
当你启动项目时,如果发现运行中的Unreal Insights会话浏览器实例,它会自动连接到本地Trace服务器。
运行中的实例需要能够访问正在运行跟踪服务器的设备(由命令 -tracehost 指定地址)。运行中的实例和跟踪服务器需要在同一个网域或公共IP地址。
你要确保1981端口没有被阻塞。
为了尽量减少工具对应用性能的影响,我们建议在另一台电脑上运行该工具,而不是在项目所在电脑上运行(尽管这不是必须的)。
Trace
Trace 是一种结构化的日志记录框架,用于追踪正在运行流程中的仪表事件。虚幻追踪服务器(Unreal Trace Server) 作为单个服务器实例在后台运行,并且可以在项目的多个实例之间共享。 它是轻量级程序,对性能的影响很小,并且不包含用户界面。
它由 Engine/Binaries/Win64
目录中的独立服务器进程可执行文件 UnrealTraceServer.exe 启动。
跟踪服务器有两个功能。
**Trace Recorder**在1981端口监听传入的跟踪连接并记录实时跟踪流。
**Trace Store* 会将记录的跟踪数据以文件形式存储在类似于 `C:/Users/
/AppData/Local/UnrealEngine/Common/UnrealTrace/Store/001/` 的路径下。它会监视这个文件夹的变化,并向Unreal Insights UI公开可用的跟踪列表。
有关更多信息,请参阅Trace文档,有关你可以用于分析数据的其他命令,请参阅Unreal Insights参考。
Unreal Insights会话浏览器
启动Unreal Insights后,它将打开 Unreal Insight会话浏览器(Unreal Insight Session Browser),其中包含 Trace存储(Trace Store) 面板(1)、包含 Trace会话(Trace Sessions)的目录(2)和 连接(Connection) 菜单面板(3)。
连接(Connection)菜单(4)包含 Trace记录器IP地址(5) ,一个 运行实例IP地址(6),以及一个初始通道,应用与在连接后启动特定的跟踪。 (7)。
工具启动时,Unreal Insights窗口会首先打开。在窗口的顶部,上面标记了 Trace会话(Trace Sessions),你将看到你可以加载以进行分析的所有预记录会话列表。这些对应了 Trace存储目录(Trace Store Directory) 中的 .utrace
文件。 你可以双击其中任一追踪会话,或选中一个追踪会话并点击 打开Trace(Open Trace) 。你也可以使用 打开Trace(Open Trace) 下拉箭头,在其他位置搜索 .utrace
文件。
要立即开始分析相应的追踪文件,请将 .utrace
文件从资源管理器拖放到Unreal Insights窗口。
如果实时Trace会话连接到该工具,它也会出现在列表中。实时会话将在状态栏中显示 LIVE 字样,并在你分析它们时实时更新,但是在其他方面与预记录会话相同。该工具可以同时连接多个会话,它会自动将所有会话的数据记录为数据流。你可以通过从列表中加载它们来实时分析这些会话(就像你使用预记录会话一样)。
Timing Insights窗口
Timing Insights 窗口可以收集性能数据。你可以看到沿 CPU 和 GPU 轨道的不同轨道的每帧性能数据。时序(Timing)视图 中添加了新 工具栏,将轨道(Tracks)下拉菜单拆分为多个菜单,你可以在其中查看项目在各种任务上所花费时间的直观呈现。
你可以选择时间块来聚合查看数据、排列数据或将数据分类,以及查看日志输出。你可以显示或隐藏相应的面板。
Timing Insights窗口包含帧(Frames)面板(1)、时序(Timing)面板(2)、日志(Log)面板(3)、定时器(Timers)和计数器(Counters)选项卡(4),以及调用者(Callers)和被调用者(Callees)面板(5)。
请参考Timing Insights了解详情。
Memory Insights
Memory Insights 是新组件,可以让你调查项目中的内存使用情况和调用堆栈追踪。
运行时组件将追踪运行时发生的每个分配、重新分配事件或空闲事件,然后在分析期间重建该内存使用模式。
有关如何设置、追踪、查询和排列数据的说明,请参阅Memory Insights文档。
Networking Insights
Unreal Insights包含 (网络Insights)Networking Insights 功能,可分析,优化并调试网络流量数据。
请参阅Networking Insights文档了解更多详情。
参考资料
为了最大程度使用 Unreal Insights 中的功能,你可以使用宏和命令行选项,自定义项目的输出。
请查看参考文档了解详情。