5 分钟跑通 Tracy 性能分析器:三平台一次部署到位,附排障清单
2026/9/10 11:44:42 网站建设 项目流程

5 分钟跑通 Tracy 性能分析器:三平台一次部署到位,附排障清单

【免费下载链接】tracyFrame profiler项目地址: https://gitcode.com/GitHub_Trending/tr/tracy

游戏帧率突然掉了一半,是 GPU 渲染慢了,还是 CPU 逻辑卡了?别靠猜。Tracy 是一款实时、纳米级分辨率的远程遥测帧分析器(frame profiler),能把任意程序里的 CPU/GPU 性能追踪、内存分配、锁竞争全部画进一条可缩放的时间线:被分析的程序照常运行,数据经 UDP 远程推送到分析器界面。

这篇文章只解决一件事:在 Windows、Linux、macOS 上把 Tracy 编译部署跑起来。全程只需要 CMake 加一套编译器,第三方依赖大头由 CMake 在首次构建时自动下载,装环境的工作比你想的少。

上图就是部署完成后的样子:每一行是一个线程,可以放大到纳秒级,右侧挂着内存视图和统计窗口。

一张表看清三平台前置条件

平台装齐这些就能编
WindowsVisual Studio 2019/2022(勾选 C++ 桌面开发负载)+ CMake ≥ 3.25
LinuxGCC 11+/Clang 14+ + CMake ≥ 3.25 + Ninja;Wayland 后端另需 wayland/xkbcommon/EGL 开发包
macOSXcode 15+(AppleClang 15 是硬门槛)+ CMake ≥ 3.25 + Ninja

CMake 3.25 这个门槛写死在分析器构建脚本 profiler/CMakeLists.txt 的第一行。国内不少机器的系统源里 CMake 停在 3.16 附近,这里最容易翻车,后面排障清单有对应的一行解法。

动手前明确一个仓库结构问题,能省半小时:

  • 根目录的 CMakeLists.txt 只构建客户端库TracyClient——这是将来把 Tracy 嵌入你自己项目时用的;
  • 分析器 GUI 本体是profiler/子目录下独立的项目。想让界面跑起来,编的是它,不是根目录。

clone 之后四步出产物

最短路径就是这四条命令,三个平台通用:

git clone https://gitcode.com/GitHub_Trending/tr/tracy cd tracy/profiler cmake --preset release cmake --build build-release --parallel

preset 已经配好 Release + Ninja,产物在build-release/tracy-profiler(Windows 下是tracy-profiler.exe),出来即可运行。configure 阶段刷屏下载的 GLFW、Freetype、capstone 等依赖都由 cmake/CPM.cmake 自动拉源码编译,所以首次构建慢(约 5~15 分钟)属正常现象,之后重建直接走缓存。

Windows:想用 IDE 就换 Visual Studio 生成器

没装 Ninja 的话,preset 用不了,直接用 VS 生成器:

cd tracy/profiler cmake -B build-vs -G "Visual Studio 17 2022" -A x64 cmake --build build-vs --config Release

生成的build-vs/tracy-profiler.sln可以直接丢进 Visual Studio 点选编译,产物落在build-vs/Release/tracy-profiler.exe

另外记得给防火墙放行tracy-profiler.exe:它默认监听 UDP 9090 接受客户端连接,不放行的话同网段另一台机器上的被分析程序会连不上。

Linux:一条命令装齐 Wayland 依赖

Linux 默认走 Wayland 后端(LEGACY开关没打开时),先装开发包:

sudo apt-get install ninja-build libwayland-dev wayland-protocols libxkbcommon-dev libegl-dev

然后照抄"四步出产物"里的两条 cmake 命令即可。如果你是纯 X11 环境,不想折腾 Wayland 包,configure 时加-DLEGACY=ON就切回 GLFW/X11 后端,GLFW 会被 CPM 自动下载,连上面的依赖都不用装。

macOS:除 Xcode 外全部自动化

三个平台里 macOS 最省心——Apple 平台默认强制自动下载 GLFW、Freetype、pugixml,工具链就位即可:

xcode-select --install cmake --preset release # 在 tracy/profiler 目录下 cmake --build build-release --parallel

AppleClang 15 以下(Xcode 15 以下)会在 configure 阶段直接被拒,提示升级工具链。想要一个能双击打开的.app,configure 时加-DBUNDLE=ON,构建脚本会自动打包图标资源。

macOS 上顺手可以把自带的examples/dyna示例跑起来,出来的就是上面这个游戏菜单;开着分析器,它每一帧的 CPU/GPU 数据都会实时出现在时间线里。

跑个示例验证:确认分析器真的在采数据

GUI 能打开不等于部署成功,得喂一次真实数据。仓库自带最小示例 examples/fibers.cpp(两个 fiber 线程打点),在 Linux 下一条命令编译:

g++ examples/fibers.cpp public/TracyClient.cpp -Ipublic/tracy \ -DTRACY_ENABLE -DTRACY_FIBERS -lpthread -ldl -o fibers

✅ 先启动tracy-profiler,再运行./fibers:分析器里应出现持续 1 秒的job1zone,统计表里能看到调用点。这一步通过,部署才算 100% 完成。

踩坑实录:症状 → 原因 → 一行解法

⚠️ 按出现频率排序,全是真实场景:

1. configure 报 "CMake 3.25 or higher is required"原因:系统装的 CMake 太旧。pip install -U cmake一步到位(macOS 也可brew install cmake);Windows 用户直接在 VS 安装器里勾选 CMake 组件。

2. Linux 上 pkg-config 报找不到 egl / wayland-egl / xkbcommon原因:默认 Wayland 后端缺开发包。sudo apt-get install libegl-dev libwayland-dev wayland-protocols libxkbcommon-dev;或者 configure 加-DLEGACY=ON绕道 X11。

3. 分析器一直转圈,看不到被分析的程序八成是客户端根本没启用:必须带TRACY_ENABLE宏编译(TRACY_NO_BROADCASTTRACY_ONLY_LOCALHOST这类开关也会限制连接范围,排查时看一眼根目录构建选项)。同机检查防火墙,跨机确认 UDP 9090 没被拦。

4. 在根目录跑 cmake,编完发现没有 GUI不是编译失败——根目录的构建目标只有TracyClient静态库,这是设计如此。GUI 请进profiler/子目录再构建。

5. Windows 上程序秒崩或黑屏分析器需要 OpenGL 3.3+ 上下文。显卡驱动过旧、或远程桌面环境没有 3D 加速都会这样,更新驱动、改用本地物理屏即可。

接下来你可以试试

  • 把 Tracy 接入自己的 C/C++ 项目:源码里包含tracy/Tracy.hpp,把public/TracyClient.cpp编进可执行文件,编译选项加上-DTRACY_ENABLE——完整集成说明见 manual/tracy.md;
  • 试一下TRACY_ON_DEMAND按需采集模式,平时零开销,需要分析时才启动上报;
  • 做 GPU 集成的话,看看public/tracy/下的 TracyVulkan.hpp、TracyD3D12.hpp 这些封装头,每个图形 API 都有现成入口。

接上你项目的第一帧数据之后,你就知道这个跨平台性能分析工具为什么值得常驻在开发机上了。

【免费下载链接】tracyFrame profiler项目地址: https://gitcode.com/GitHub_Trending/tr/tracy

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询