网络分析器(Network Profiler)

Network Profiler 是一款独立工具,可用于显示网络流量和性能信息,上述信息可在游戏运行时由引擎捕捉。它是一种极其有效的方式,可识别多人游戏中占用极高带宽的区域,因为您可以查看各个 actor、PRC 和属性在总带宽中的占比。

录制分析会话

在使用 network profiler 之前,您必须录制相同的数据才能进行分析。为此,您需要使用启用了进程状态跟踪功能的引擎,通常这说明是个调试 build、用于非调试配置或编辑器 build(更具体地来说,对引擎进行编译时,STATS 宏已定义为非零值)。

还可以在引擎启动的时候增加 "networkprofiler=true" 命令行参数,以便于引擎已启动就能够开始记录,也可以用以下这些命令行指令在运行时控制是否要记录网络数据:

数据将被保存至 /Saved/Profiling/-.nprof。如果您在相同文件夹中看到一个名为 NetworkProfiling.tmp 的文件, 这只是引擎在收集数据时使用的临时文件。当前分析会话停止时,该文件将根据以上方案进行重命名,然后即可在独立工具中打开它。

在 Network Profiler 应用程序中查看分析会话

Network Profiler 是一款独立应用程序,其位于 /Engine/Binaries/DotNET/NetworkProfiler.exe。

在窗口顶部,单击 “Open File(打开文件)” 按钮选择 .nprof 文件,并查看其中包含的数据。

image alt text

“Chart, Filters, Details”选项卡

默认条件下,选定的是 “Chart, Filters, Details(图表、筛选器和详细信息)” 选项卡。下文将对此选项卡的不同区域进行介绍。

image alt text

  1. 图表视图

  2. 统计数据列表

  3. 汇总视图

  4. 帧详细信息

  5. 筛选器

  6. 性能视图

图表视图

这是主图表视图。它类似于其他分析应用程序中的图表,可显示随时间推移已启用统计数据的图表。单击特定帧可使用该帧相关数据填充其他视图,也可在图表上点击并拖动以放大相应区域,并查看该时间范围内的汇总情况。

统计数据列表

该列表中包含了 network profiler 所跟踪的所有统计数据。切换复选框将显示或隐藏图表中的特定统计数据。对于大多数统计数据,您可选择原始计数、每秒计数、字节数或每秒字节数。

汇总视图

该视图中显示图表中所选时间范围内的数据汇总。其中显示了原始总数以及每秒信息。请注意,“Outgoing bandwidth(输出带宽)” 将大于 “Game socket send size(游戏套接字发送大小)”,因为 “Outgoing bandwidth(输出带宽)” 也包括了 IP 和 UDP 标头大小的近似值。

帧详细信息

该视图对当前选定帧所发送的数据进行了分类统计。您可以查看发送了哪些 actor、属性和远程函数,以及各项分别占到多少字节。请注意,数据组中包括了 actor 和 PRC,因此 “SEND BUNCH” 部分中的 “NumBytes” 字段中包含了 “SEND RPC” 和 “REPLICATE ACTOR” 部分的字节。最后,“SOCKET SEND TO” 条目将精确显示引擎发送到输出套接字的字节数。另请注意,此处不包含标准 UDP 数据包资源消耗。

筛选器

您可为 actor、属性和 RPC 输入筛选器,在单击 “Apply Filters(应用筛选器)” 按钮后,图表将更新为只显示包含筛选器字段中输入文本的相关 actor、属性和 RPC。在应用了筛选器之后,选择图表中的单个帧或一系列帧也将相应地筛选汇总和帧详细信息视图中的数据。

性能视图

选择了图表中的单个帧时,该视图将显示该帧内复制的 actor 类型列表,并按照 CPU 复制它们所需的时间排序。如果某个 actor 具有相关的复制属性,则展开该 actor 的树形视图将显示各属性。在 actor 选项卡中,第一栏数值表示 CPU 复制该 actor 所花费的时间(以毫秒计)。第二栏是用于表示数据包中 actor 的字节数,第三栏是当前帧中复制的指定类型的 actor 数。在属性行中,第一列是用于属性的字节数,第二列表示为 actor 复制了多少具有指定名称的属性。

“Actors” 选项卡、“Properties(属性)” 选项卡和 “RPCs” 选项卡

image alt text

每个选项卡都显示了整个分析会话中各复制数据的汇总情况。请注意,这些选项卡中显示的数据不受 “Chart, Filters, Details” 选项卡的图表中选定的当前帧或时间范围的影响。

选项卡上分别显示了 actor、属性或 PRC 的列表。“Total Size(总体大小)” 和 “Average Size(平均大小)” 列显示了特定项需要多少带宽,“Count(计数)” 列表示在分析会话期间复制了多少次特定项。单击各列的表头,可在升序或降序之间切换。

服务器和客户端

从客户端和服务器都可录制分析数据。但是,请注意,由于只有服务器复制 actor 及其属性,因此在查看客户端上录制的分析数据时,只能看到从该客户端发送的 RPC 的详细数据。