Choose your operating system:
Windows
macOS
Linux
分析工具(Profiler) 是对虚幻引擎 3 中的 StatsViewer 工具的替代,它收集并跟踪游戏数据,监控游戏性能。此数据可用于确定游戏中故障和速度减慢的原因。
如你对性能调试了解不多,请先查阅 性能及分析 文档,其中包含的技巧将指导你对游戏性能进行监控。
启用分析工具
启用 分析工具 并收集数据的方法有两种:
-
即时连接
-
使用参数 -\messaging 运行游戏(如: UE4Editor-Win64-Debug.exe -messaging )。
-
使用参数 -\messaging 运行 UFE(如: UnrealFrontend-Win64-Debug.exe -messaging )。
-
从 Window 菜单栏的 Developer Tools 部分选择 Session Frontend ,然后选择 Profiler 标签。
-
-
加载之前采集的数据
-
按下 Profiler 标签工具栏上的 Load 按钮并选择一个 .ue4stats 文件。
-
将来自浏览器或其他文件管理器的 stats 文件放入 Profiler 窗口。
-
也可从 C:\Program Files\Unreal Engine\4.3\Engine\Binaries\Win64 文件夹运行单独的 UnrealFrontEnd.exe ,以便访问 Session FrontEnd 和 Profiler 标签。(注意:上述路径中的版本号与你实际的版本号可能不一致)。
分析工具窗口
下图即为 Profiler 窗口和 UI 组件:
点击图片查看全图。
-
连接会话 和 会话信息 窗口 - 用作获取 stats 数据的会话。
-
主工具栏 窗口 - 包含基础整体功能。
-
完整数据图表 窗口 - 包含 stats 图像展示的全貌。
-
数据图表 窗口 - stats 图像展示。
-
过滤 和 预设 窗口 - 包含所有 stats 和群组(用户可对这些 stats 和群组进行过滤和排序)。
-
事件图表 窗口 - 以事件图表显示所选帧。
主工具栏
以下是 主工具栏 上每个操作的描述:
选项 |
描述 |
---|---|
|
加载 stats 文件。 |
|
尚未应用此选项。 |
|
只用于即时连接,启用和连接会话/客户端的通信(启用后将点亮图标)。 |
|
只用于即时连接,启用数据图表视图即时同步(启用后将点亮图标)。 |
|
只用于即时连接,采集客户端上的数据。采集完成后,将弹出提示信息询问是否需要将采集数据传输到用户的设备。完成数据传输后将弹出提示信息加载 stats 文件。 |
|
启用 Stats 分析工具 。 |
|
显示 FPS Chart ( 此选项的功能仍在完善中 )。 |
|
打开 分析工具 的设置:启用/禁用 Single Instance Mode 或 Show Coalesced View Modes in Event Graph 。 |
数据采集 文件保存在下列路径中 ...\UE4\Engine\Programs\UnrealFrontend\Saved\Profiling\UnrealStats\Received\...
过滤和预设
以下是 主工具栏 上每个操作的描述:
选项 |
描述 |
---|---|
搜索框 (1) |
用于寻找 stat 文件,输入字符后,匹配的内容将在"Stats/群组"窗口中高亮显示。 |
分组方式 (2) |
Stats 的分组方法,默认按群组名分组。 |
排序方式 (3) |
群组中 stats 的排序方法,默认按名称排序。 |
Stats/群组窗口 (4) |
显示 Stats 和群组。点击 图标展开每个群组。高亮 图标显示 stat 信息。 |
|
切换显示层级 stats(也称作范围计数器)。 |
|
切换显示浮点、双计数器和累加器。 |
|
切换显示整数 stats、字计数器和累加器。 |
|
切换显示内存 memory stats ( 此选项功能仍在完善中 ). |
如何追踪 Stats
追踪 stats 的方法有三种:
-
双击 选中的 stat,将其添加到 数据图表视图 的显示中(或从显示中移除)。
-
将其从 Stats/群组窗口 拖放 到 数据图表视图 中(如下图所示)。
-
从 数据图表视图 进行 拖放 。
正在被追踪的 stat 以不同颜色显示,且名称旁带有"*"符号。
下列群组名后第二个括号中的数字代表群组正在被追踪的 stat 数量。
上图的 Audio 群组中存在 11 个项目,有 1 个正被追踪。
数据图表
数据图表 视图显示所有被追踪的 stats。在 stats 的文本前按下(X)按钮即可停止追踪 stat。
Stat 的文本包含下列信息,详解如下:
-
(群组名) - Stat 的群组名。
-
Stat 名称 - Stat 的名称。
-
实际值 - Stat 的实际值。
-
最小值 - 基于整体采集的最小值。
-
平均值 - 基于整体采集的平均值。
-
最大值 - 基于整体采集的最大值。
-
调用 - 此 stat 调用的帧数百分比(仅限分层数据)。
-
最小值 - 基于整体采集对此 stat 的最小调用数(仅限分层数据)。
-
平均值 - 基于整体采集对此 stat 的平均调用数(仅限分层数据)。
-
最大值 - 基于整体采集对此 stat 的最大调用数(仅限分层数据)。
以"仅限分层数据"表示的数值仅限显示分层数据。
数据图表 轴的解释如下:
-
下 - 显示从初始的时间,自 0.0 开始。
-
下 - 显示从初始的帧数量,自 0.0 开始。
-
左 - 基于缩放比例显示关于时间的自适应信息(以毫秒为单位)。使用 鼠标滚轮 ,有三种预设轴,代表游戏 30、60、100 FPS 的运行速度,每个均以不同颜色显示。
-
右 - 显示其他 stats(如浮点或内存)的自适应信息。此轴的大小与左轴不同,因浮点或内存数值通常大于时间相关的 stats。
在 数据图表 窗口中 单击右键 将出现带额外选项的快捷菜单:
-
View Mode - 暂时只支持 Index based 模式( Time based 仅在 分析工具 的多会话模式中可用,尚处于实验阶段,默认为禁用)。
-
Select All Frames - 此选项可选中所有帧并更新 事件图表视图 。
-
Live Preview - 此选项与主工具栏中的选项相同。
事件图表
事件图表视图 由以下内容组成:
-
标题 - 显示当前连接的会话名称或当前加载的 stats 文件。
-
事件图表工具栏 - 用于 事件图表 过滤和其他功能。
-
函数细节 - 所选事件/函数的细节视图。
-
主事件图表 - 所选单帧或多帧的层级视图。
事件图表工具栏
以下是 事件图表工具栏 上每个操作的描述:
选项 |
描述 |
---|---|
|
数据图表 上选中一帧后才会被启用。 |
|
如在多帧在 数据图表 上被选中,将默认启用。这是一个每帧的平均图表。 |
|
如在多帧在 数据图表 上被选中,即可启用。这是最高的每帧图表。 |
|
以层级树视图显示 主事件图表 中的内容。 |
|
在平展事件列表中显示 主事件图表 的内容,按 包含时间 排序。 |
|
在平展事件列表中显示 主事件图表 的内容,按 Event Name 合并,按 包含时间 排序。 |
|
在平展事件列表中显示 主事件图表 的内容,按 独占时间 排序。 |
|
在平展事件列表中显示 主事件图表 的内容,按 事件名称 合并,按 独占时间 排序。 |
|
操作历史倒退按钮。 |
|
操作历史前进按钮。 |
|
显示操作历史菜单。 |
|
基于包含时间展开所选事件的热路径,并启用按包含时间进行的降序排序(这是性能消耗最高的路径)。 |
函数细节
函数细节 显示用户所选函数/事件和执行所选函数/事件的调用函数之间的关系。这些关系通过按钮展示(这些按钮根据百分比数值相应缩放)。
用户可轻松地从上之下跟踪事件,寻找降低性能的因素。 函数细节 视图以两种方式与 主事件图表 同步,因此选中一个新函数将同时选中 主事件图表 中的函数。
Function Details 由下列元素组成:
-
调用函数 - 显示对所选函数进行调用的函数。控件尺寸基于百分比值缩放。
-
当前函数 - 在 主事件图表 事件中当前选中的事件/函数。
-
被调用函数 - 被所选函数调用的函数。控件尺寸基于百分比值缩放。
-
- 显示此图标时,事件已在 主事件图表 窗口中剔除(下一部分中有更多详情)。
-
- 显示此图标时,事件已在 主事件图表 窗口中被过滤掉(下一部分中有更多详情)。
-
在 图标上悬停鼠标即可显示项目的额外信息。
主事件图表
主事件图表 窗口显示事件执行路径。一个根不存在,但每个线程均拥有其自身的开始事件。它通常由线程的名称或线程的数字 ID 表明,例如"[0x1234]"。
利用 主事件图表 可对诸多其他函数进行过滤和剔除。这些函数列举在下方。在 主事件图表 窗口中 单击右键 并从出现的快捷菜单中选择所需操作后即可进行访问。
选项 |
描述 |
---|---|
Selection |
显示所选事件名称。 |
|
Set Root - 设置所选事件的根并切换至等级视图。 |
|
Cull Events - 基于 'ColumnName' 将事件剔除到 'Value'。仅"Inc Time (MS)"栏可用。这些事件将从图表中移除,其父项将显示 (IconCulled.png)(w:20 convert:false) 图标。为便于查找,按下此图标即可恢复剔除的事件。如剔除不可用,此选项为灰色。 |
|
Filter Events - 基于 'ColumnName' 过滤事件到 'Value'。仅"Inc Time (MS), Exc Time (MS), Calls"栏可用。这些事件在图表中显示为灰色。这些事件在图表中显示为灰色。如过滤不可用,此选项为灰色。 |
|
Reset to Default - 将所选事件图表的 Root 、 Culling 和 Filtering 重置为默认状态,并清除操作历史。 |
|
Expand All - 展开所有事件。 |
|
Collapse All - 重叠所有事件。 |
|
Expand Selection - 将所选事件和子项展开。 |
|
Collapse Selection - 将所选事件和子项重叠。 |
|
Expand Thread - 将所选线程和子项展开。 |
|
Collapse Thread - 将所选线程和子项重叠。 |
|
Expand Hot Path - 基于包含时间展开所选事件的热路径,并启用按包含时间进行的降序排序(这是性能消耗最高的路径)。 |
|
Show in Hierarchical View - 切换至等级视图并展开所选事件。 |
|
Show in Flat Inclusive View - 切换至平展包含视图并启用按包含时间进行的降序排序。 |
|
Show in Flat Inclusive Coalesced - 切换至平展合并,启用按包含时间进行的降序排序。 |
|
Show in Flat Exclusive View - 切换至平展独占视图并启用按包含时间进行的升序排序。 |
|
Show in Flat Exclusive Coalesced - 切换至平展独占合并视图并启用按包含时间进行的升序排序。 |
|
Copy to Clipboard - 将选项复制到剪切板。 |
|
Select Stack - 选择叠列中的所有事件。 |
|
Sort By - 显示按特定栏排序和变更排序模式的菜单。 |
|
View Column [可用栏列表] - 展示用于隐藏/显示栏的菜单。 |
|
Reset Columns to Default - 恢复栏的默认设置。 |