分析工具参考

Profiler_Header.png

本页面的内容:

分析工具(Profiler) 是虚幻引擎 3 中 StatsViewer 工具的替代品,它收集并跟踪游戏数据,监控游戏性能。此数据可用于确定游戏中故障和速度减慢的原因。

如您对性能调试了解不多,请先查阅 性能及分析 文档,其中包含的技巧将指导您对游戏性能进行监控。

启用分析工具

启用 分析工具 并收集数据的方法有两种:

  1. 即时连接

    • 使用参数 -messaging 运行游戏(如:UE4Editor-Win64-Debug.exe -messaging)。

    • 使用参数 -messaging 运行 UFE(如:UnrealFrontend-Win64-Debug.exe -messaging)。

    • Window 菜单栏的 Developer Tools 部分选择 Session Frontend,然后选择 Profiler 标签。

  2. 加载之前采集的数据

    • 按下 Profiler 标签工具栏上的 Load 按钮并选择一个 .ue4stats 文件。

    • 将来自浏览器或其他文件管理器的 stats 文件放入 Profiler 窗口。

也可从 C:\Program Files\Unreal Engine\4.3\Engine\Binaries\Win64 文件夹运行单独的 UnrealFrontEnd.exe,以便访问 Session FrontEndProfiler 标签。(注意:上述路径中的版本号与您实际的版本号可能不一致)。

分析工具窗口

下图即为 Profiler 窗口和 UI 组件:

点击图片查看全图。

  1. 连接会话会话信息 窗口 - 用作获取 stats 数据的会话。

  2. 主工具栏 窗口 - 包含基础整体功能。

  3. 完整数据图表 窗口 - 包含 stats 图像展示的全貌。

  4. 数据图表 窗口 - stats 图像展示。

  5. 过滤预设 窗口 - 包含所有 stats 和群组(用户可对这些 stats 和群组进行过滤和排序)。

  6. 事件图表 窗口 - 以事件图表显示所选帧。

主工具栏

Profiler_MainToolbar.png

以下是 主工具栏 上每个操作的描述:

选项 描述
LoadIcon.png 加载 stats 文件。
SaveIcon.png 尚未应用此选项。
DataPreviewIcon.png 只用于即时连接,启用和连接会话/客户端的通信(启用后将点亮图标)。
LivePreviewIcon.png 只用于即时连接,启用数据图表视图即时同步(启用后将点亮图标)。
DataCaptureIcon.png 只用于即时连接,采集客户端上的数据。采集完成后,将弹出提示信息询问是否需要将采集数据传输到用户的设备。完成数据传输后将弹出提示信息加载 stats 文件。
StatisticsIcon.png 启用 Stats 分析工具
FPSChartIcon.png 显示 FPS Chart此选项的功能仍在完善中)。
SettingsIcon.png 打开 分析工具 的设置:启用/禁用 Single Instance ModeShow Coalesced View Modes in Event Graph

数据采集 文件保存在下列路径中 ...\UE4\Engine\Programs\UnrealFrontend\Saved\Profiling\UnrealStats\Received\...

过滤和预设

FilterPresetsWindow.png

以下是 主工具栏 上每个操作的描述:

选项 描述
搜索框 (1) 用于寻找 stat 文件,输入字符后,匹配的内容将在“Stats/群组”窗口中高亮显示。
分组方式 (2) Stats 的分组方法,默认按群组名分组。
排序方式 (3) 群组中 stats 的排序方法,默认按名称排序。
Stats/群组窗口 (4) 显示 Stats 和群组。点击 Icon_Arrow.png 图标展开每个群组。高亮 Icon_Tag.png 图标显示 stat 信息。
Icon_Hier.png 切换显示层级 stats(也称作范围计数器)。
Icon_Float.png 切换显示浮点、双计数器和累加器。
Icon_Int.png 切换显示整数 stats、字计数器和累加器。
Icon_Mem.png 切换显示内存 memory stats (此选项功能仍在完善中).

如何追踪 Stats

追踪 stats 的方法有三种:

  1. 双击 选中的 stat,将其添加到 数据图表视图 的显示中(或从显示中移除)。

  2. 将其从 Stats/群组窗口 拖放数据图表视图 中(如下图所示)。

  3. 数据图表视图 进行 拖放

StatDragAndDrop.png

正在被追踪的 stat 以不同颜色显示,且名称旁带有“*”符号。

StatsWindowStatTracked.png

下列群组名后第二个括号中的数字代表群组正在被追踪的 stat 数量。

MainWindowStatTracked.png

上图的 Audio 群组中存在 11 个项目,有 1 个正被追踪。

数据图表

数据图表 视图显示所有被追踪的 stats。在 stats 的文本前按下(X)按钮即可停止追踪 stat。

ClickToStopTracking.png

Stat 的文本包含下列信息,详解如下:

StatDescriptionBreakdown.png

  1. (群组名) - Stat 的群组名。

  2. Stat 名称 - Stat 的名称。

  3. 实际值 - Stat 的实际值。

  4. 最小值 - 基于整体采集的最小值。

  5. 平均值 - 基于整体采集的平均值。

  6. 最大值 - 基于整体采集的最大值。

  7. 调用 - 此 stat 调用的帧数百分比(仅限分层数据)。

  8. 最小值 - 基于整体采集对此 stat 的最小调用数(仅限分层数据)。

  9. 平均值 - 基于整体采集对此 stat 的平均调用数(仅限分层数据)。

  10. 最大值 - 基于整体采集对此 stat 的最大调用数(仅限分层数据)。

以“仅限分层数据”表示的数值仅限显示分层数据。

数据图表 轴的解释如下:

数据图表 窗口中 单击右键 将出现带额外选项的快捷菜单:

DataGraphContextMenu.png

事件图表

EventGraphView.png

事件图表视图 由以下内容组成:

  1. 标题 - 显示当前连接的会话名称或当前加载的 stats 文件。

  2. 事件图表工具栏 - 用于 事件图表 过滤和其他功能。

  3. 函数细节 - 所选事件/函数的细节视图。

  4. 主事件图表 - 所选单帧或多帧的层级视图。

事件图表工具栏

EventGraphToolBar.png

以下是 事件图表工具栏 上每个操作的描述:

选项 描述
EG_Icon_OneFrame.png 数据图表 上选中一帧后才会被启用。
EG_Icon_Average.png 如在多帧在 数据图表 上被选中,将默认启用。这是一个每帧的平均图表。
EG_Icon_Maximum.png 如在多帧在 数据图表 上被选中,即可启用。这是最高的每帧图表。
EG_Icon_Hierarchical.png 以层级树视图显示 主事件图表 中的内容。
EG_Icon_Inclusive.png 在平展事件列表中显示 主事件图表 的内容,按 包含时间 排序。
EG_Icon_Inclusive2.png 在平展事件列表中显示 主事件图表 的内容,按 Event Name 合并,按 包含时间 排序。
EG_Icon_Exclusive.png 在平展事件列表中显示 主事件图表 的内容,按 独占时间 排序。
EG_Icon_Exclusive2.png 在平展事件列表中显示 主事件图表 的内容,按 事件名称 合并,按 独占时间 排序。
EG_Icon_HistoryBack.png 操作历史倒退按钮。
EG_Icon_HistoryForward.png 操作历史前进按钮。
EG_Icon_HistoryMenu.png 显示操作历史菜单。
EG_Icon_HotPath.png 基于包含时间展开所选事件的热路径,并启用按包含时间进行的降序排序(这是性能消耗最高的路径)。

函数细节

函数细节 显示用户所选函数/事件和执行所选函数/事件的调用函数之间的关系。这些关系通过按钮展示(这些按钮根据百分比数值相应缩放)。

用户可轻松地从上之下跟踪事件,寻找降低性能的因素。函数细节 视图以两种方式与 主事件图表 同步,因此选中一个新函数将同时选中 主事件图表 中的函数。

Function Details 由下列元素组成:

Icon_Tag.png 图标上悬停鼠标即可显示项目的额外信息。

主事件图表

MainEventGraphWindow.png

主事件图表 窗口显示事件执行路径。一个根不存在,但每个线程均拥有其自身的开始事件。它通常由线程的名称或线程的数字 ID 表明,例如“[0x1234]”。

利用 主事件图表 可对诸多其他函数进行过滤和剔除。这些函数列举在下方。在 主事件图表 窗口中 单击右键 并从出现的快捷菜单中选择所需操作后即可进行访问。

EventGraphContextMenu.png

选项 描述
Selection 显示所选事件名称。
EG_Menu_Icon_Root.png Set Root - 设置所选事件的根并切换至等级视图。
EG_Menu_Icon_Culling.png Cull Events - 基于 'ColumnName' 将事件剔除到 'Value'。仅“Inc Time (MS)”栏可用。这些事件将从图表中移除,其父项将显示 (IconCulled.png)(w:20 convert:false) 图标。为便于查找,按下此图标即可恢复剔除的事件。如剔除不可用,此选项为灰色。
EG_Menu_Icon_Filtering.png Filter Events - 基于 'ColumnName' 过滤事件到 'Value'。仅“Inc Time (MS), Exc Time (MS), Calls”栏可用。这些事件在图表中显示为灰色。这些事件在图表中显示为灰色。如过滤不可用,此选项为灰色。
EG_Menu_Icon_Reset.png Reset to Default - 将所选事件图表的 RootCullingFiltering 重置为默认状态,并清除操作历史。
EG_Menu_Icon_Expand.png Expand All - 展开所有事件。
EG_Menu_Icon_Collapse.png Collapse All - 重叠所有事件。
EG_Menu_Icon_ExpandSelection.png Expand Selection - 将所选事件和子项展开。
EG_Menu_Icon_CollapseSelection.png Collapse Selection - 将所选事件和子项重叠。
EG_Menu_Icon_ExpandThread.png Expand Thread - 将所选线程和子项展开。
EG_Menu_Icon_CollapseThread.png Collapse Thread - 将所选线程和子项重叠。
EG_Menu_Icon_ExpandHotPath.png Expand Hot Path - 基于包含时间展开所选事件的热路径,并启用按包含时间进行的降序排序(这是性能消耗最高的路径)。
EG_Menu_Icon_HierarchicalView.png Show in Hierarchical View - 切换至等级视图并展开所选事件。
EG_Menu_Icon_FlatInclusiveView.png Show in Flat Inclusive View - 切换至平展包含视图并启用按包含时间进行的降序排序。
EG_Menu_Icon_FlatInclusiveView2.png Show in Flat Inclusive Coalesced - 切换至平展合并,启用按包含时间进行的降序排序。
EG_Menu_Icon_FlatExclusiveView.png Show in Flat Exclusive View - 切换至平展独占视图并启用按包含时间进行的升序排序。
EG_Menu_Icon_FlatExclusiveCoalesced.png Show in Flat Exclusive Coalesced - 切换至平展独占合并视图并启用按包含时间进行的升序排序。
EG_Menu_Icon_CopyToClipboard.png Copy to Clipboard - 将选项复制到剪切板。
EG_Menu_Icon_SelectStack.png Select Stack - 选择叠列中的所有事件。
EG_Menu_Icon_SortBy.png Sort By - 显示按特定栏排序和变更排序模式的菜单。
EG_Menu_Icon_ViewColumn.png View Column [可用栏列表] - 展示用于隐藏/显示栏的菜单。
EG_Menu_Icon_ResetColumns.png Reset Columns to Default - 恢复栏的默认设置。