跳至正文
版本:bleeding-edge 🩸

性能分析

nanos world 包含了内置的工具,用于实时分析服务器和游戏客户端的性能。 在优化大型服务器、识别 Lua 瓶颈、分析帧率卡顿、调试网络问题或提高整体性能时,使用性能分析工具是必不可少的。

Tracy 性能分析器

Tracy 帧概览

nanos world 服务器包含了对 Tracy Profiler 的内置集成,允许你实时分析服务器的性能。

Tracy 是一款实时、纳秒级分辨率的性能分析器,广泛应用于游戏开发和高性能应用程序中。 它提供了一个交互式的时间轴视图,你可以在其中精确检查应用程序在每一帧期间正在执行的操作。

与传统的性能分析器不同,Tracy 允许你在游戏或服务器运行时实时检查性能。 它提供了应用程序执行的详细时间轴视图,包括:

  • Lua 调用
  • 事件回调
  • 计时器回调
  • 内部系统
  • 网络处理
  • 帧时间
  • 线程活动
  • 内存分配
  • 锁竞争
  • 加载时间

悬停时的 Tracy 详细视图

下载 Tracy

首先,从官方 Releases 页面下载 Tracy Profiler 客户端应用程序:

下载 Tracy Profilerhttps://github.com/wolfpld/tracy/releases

下载完成后,启动 Tracy 应用程序。

启动服务器

要启动启用了 Tracy 性能分析的服务器,你必须像这样启动它:

./NanosWorldServerTracy.exe

使用 Tracy 连接到服务器

一旦服务器在启用性能分析的情况下运行:

  1. 打开 Tracy Profiler 应用程序
  2. 输入服务器的 IP 地址,或者从可用连接列表中选择它
  3. 单击 Connect

Tracy 将立即开始从运行中的服务器捕获性能分析数据。

原生性能分析

我们还集成了一个原生的性能分析命令,可用于在不使用 Tracy 的情况下捕获性能分析数据。 它的工作原理是将代码中某些预定义部分的执行时间输出到服务器或客户端控制台(或客户端的性能分析 UI)。

输出性能分析信息的服务器控制台

服务器性能分析

要启用服务器性能分析,只需使用 --profiling 命令启动服务器,或者在服务器的 Config.toml 文件中设置 profiling = true

它将在服务器控制台中输出 PROFIL 日志,显示各种系统和 Lua 回调的执行时间。

客户端性能分析

要启用客户端性能分析,你必须在游戏设置的调试标签页下将其启用:

游戏设置 - 调试标签页

显示帧时间

启用此项后,它将显示一个调试 UI,其中包含:

  • 帧率(每秒帧数 - 括号内显示的是 DLSS 帧生成技术开启后的 fps)
  • 帧时间(渲染每帧所需的时间,毫秒)
  • 1% 最低帧(最差的 1% 帧的平均 fps)
  • 游戏(游戏线程花费的时间)
  • 渲染(渲染线程花费的时间)
  • rhi(RHI 线程花费的时间)
  • gpu(GPU 花费的时间)

帧时间调试 UI

在屏幕上显示性能分析

启用此项后,它将直接在游戏屏幕上显示性能分析 UI,列出所有操作及其执行时间,允许你实时监控性能而无需查看控制台:

性能分析调试 UI

将性能分析输出到控制台

启用此项后,将把性能分析信息输出到游戏控制台,与服务器端完全一样。

对实体和事件网络进行性能分析

启用此项后,将在屏幕上显示每个实体的网络占用情况,以及脚本事件和其他同步网络占用情况:

实体网络统计信息调试 UI