Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Tracy
参见
详情请参阅 tracing profiler instructions 。
Tracy 是一款开源的性能分析器(profiler),它支持非常广泛的平台,包括 Windows、Linux 和 macOS。虽然它本质上主要是一款追踪式分析器(tracing profiler),但它也能像 sampling profiler 那样定期采集数据,从而让你同时享受到这两种分析方式带来的好处。
编译(构建)支持 Tracy 的 Godot
首先,使用 Git 克隆最新版本的 Tracy 源代码(在撰写本文时最新版本为 "0.13.0"):
git clone -b v0.13.0 --single-branch https://github.com/wolfpld/tracy.git
这将会创建一个 tracy 目录——你可以把它放在任何你喜欢的地方。
接下来,使用 scons 为你的平台编译 release 模板。不过,你需要额外加上 profiler=tracy profiler_path=path/to/tracy 这两个参数,并记得把 path/to/tracy 替换成你电脑上 tracy 文件夹的真实路径。此外,还需要加上 debug_symbols=yes 参数,这样才能让 Tracy 的采样(sampling)功能正常工作。
备注
你其实不一定非要编译发布模板(release templates),也可以编译调试模板(debug templates),甚至直接编译编辑器本身。不过,通常还是建议大家针对“发布模板”来进行性能分析,因为这毕竟是玩家们实际玩到的版本,它的运行表现会和其他类型的构建版本有所不同。
举个例子,如果要为 Windows 平台编译发布模板的话:
scons platform=windows target=template_release debug_symbols=yes profiler=tracy profiler_path=path/to/tracy
获取 Tracy 的“服务端”
在 Tracy 的术语里,你正在进行性能分析的那个应用程序(比如你的游戏)被称为“客户端(client)”,而负责接收这些数据的那个程序(也就是 Tracy 分析器界面)则被称为“服务端(server)”。
如果你用的是 Windows 系统,可以直接去 Tracy 的 releases page 下载一个已经编译好的 tracy-profiler.exe 文件。
不过,如果你使用的是 Linux 或 macOS 系统,你要么需要去包管理器(比如 brew 或 nix)里找找有没有预编译好的二进制文件,要么就只能自己动手从源代码编译一个啦。
备注
如果你确实想使用预编译好的二进制文件,请务必确保它的版本和你当初编译 Godot 时使用的版本保持一致。
从源码编译(构建)Tracy 服务器
为了编译 Tracy,你需要先安装 cmake。你可以直接从 CMake website 下载,或者也可以通过包管理器(比如 brew 或 nix)来安装。
关于如何从源代码编译 Tracy 的完整说明,你可以在 Tracy manual 里找到。不过,这里直接给你划个重点(TL;DR):
# On Linux, Tracy uses Wayland by default, so if you use X11 add -DLEGACY=1
cmake -B profiler/build -S profiler -DCMAKE_BUILD_TYPE=Release
cmake --build profiler/build --config Release --parallel
这会将可执行文件(二进制程序)放置在 tracy/profiler/build/tracy-profiler 路径下,如果你是在 Windows 系统上,那就是 tracy/profiler/build/tracy-profiler.exe。
抓取追踪记录
启动 Tracy 服务器——你会看到类似这样的界面:
按下“Connect”(连接)按钮。这一步能确保 Tracy 在游戏启动的瞬间就立刻建立连接。如果你忘了点“Connect”,Tracy 会把所有的系统事件先暂存在内存(RAM)里,这可能会让你的内存占用量瞬间爆表(具体可以看看关于 TRACY_ON_DEMAND 的相关文档说明)。
现在,用你刚才自己编译好的发布模板(release templates)导出你的游戏,然后运行它。当游戏和 Tracy 都在运行,并且你在 Tracy 里按下了“Connect”(连接)按钮后,马上就能看到数据开始传输进来了:
当你觉得已经收集到足够的数据时,按下“Stop”(停止)按钮即可。如果你不小心点到了别的地方,导致带有“Stop”按钮的那个小框框消失了,可以点击最左上角的图标把它重新唤出来。
分析追踪记录
以下是一些基础的操作控制:
滚动鼠标滚轮,就能放大或缩小视图啦
按住鼠标右键并拖动,就可以在时间轴上向前或向后移动啦
在顶部的工具栏里,点击“Frames”(帧)旁边的左右箭头按钮,就可以在时间轴上逐帧移动啦
想了解更多内容,请查阅 Tracy manual。