实时性能分析工具

Tracy Profiler

纳秒级分辨率的实时远程遥测混合帧与采样性能分析器,专为游戏和应用程序设计

13.3k GitHub Stars
C++ 主要语言
BSD-3 开源许可
v0.13.0 最新版本

什么是 Tracy Profiler?

Tracy 是一款先进的实时性能分析工具,专为游戏开发者和应用程序工程师打造。它提供纳秒级别的精确测量能力,通过远程遥测技术实现实时性能监控,结合帧分析和采样分析的混合方法,帮助开发者深入了解程序运行时的性能瓶颈。

与传统的事后分析工具不同,Tracy 采用实时监控架构,允许开发者在程序运行过程中即时查看性能数据,快速定位问题并验证优化效果。这种即时反馈机制大大提升了性能优化的效率。

纳秒级精度

提供业界领先的纳秒级时间分辨率,精确捕捉每一个性能细节

📡

远程遥测

支持远程实时监控,无需停止程序即可查看性能数据

🎯

混合分析

结合基于帧的分析和采样分析,提供全面的性能视图

🌍

多平台支持

支持 Windows、Linux、macOS 等主流平台,跨平台性能分析

核心特性

Tracy 提供全方位的性能分析能力,从 CPU 到 GPU,从内存到锁,一网打尽

💻

CPU 性能分析

直接支持多种编程语言的 CPU 性能分析,社区提供更多语言绑定

  • 原生支持:C、C++、Lua、Python、Fortran
  • 社区绑定:Rust、Zig、C#、OCaml、Odin
  • 函数级别的性能追踪
  • 调用栈分析和热点检测
🎮

GPU 性能分析

全面支持主流图形 API,深入分析 GPU 性能瓶颈

  • OpenGL、Vulkan 完整支持
  • Direct3D 11/12 性能追踪
  • Metal、OpenCL、CUDA 支持
  • ROCm / Rocprof 支持 (v0.13.0)
🧠

内存分析

追踪内存分配模式,优化内存使用效率

  • 实时内存分配追踪
  • 内存泄漏检测
  • 分配模式可视化
  • 内存使用统计分析
🔒

锁与并发分析

监控多线程同步,发现并发性能问题

  • 锁竞争检测
  • 上下文切换监控
  • 线程时间线可视化
  • Fiber 进出事件追踪
📸

帧截图与可视化

自动捕获帧截图,直观展示性能数据

  • 自动帧截图关联
  • 性能数据可视化
  • 时间线浏览器
  • 多视图对比分析
🤖

LLM 智能集成

v0.13.0 新特性:本地 LLM 辅助性能分析

  • 用户手册智能检索
  • 调用栈智能分析
  • 汇编代码解释
  • 性能问题智能诊断

技术架构

现代化的架构设计,支持多种构建系统和平台

⚙️

构建系统

支持 CMake 和 Meson 构建系统,灵活适配不同项目需求

🖥️

跨平台

Windows、Linux、macOS 全平台支持,包括 GDK 游戏开发套件

📦

预编译版本

提供 Windows x64 预编译二进制,开箱即用

🔧

低侵入性

客户端集成简单,对原有代码影响最小化

安装指南

选择适合你的安装方式快速开始

1. 下载预编译版本 (Windows)

访问 GitHub Releases 页面下载最新版本的预编译二进制文件:

下载链接
https://github.com/wolfpld/tracy/releases/latest

下载 Tracy-{version}.7z 压缩包并解压即可使用

2. 使用 CMake 构建

从源码编译 Tracy 服务器和客户端:

Bash
# 克隆仓库
git clone https://github.com/wolfpld/tracy.git
cd tracy

# 创建构建目录
mkdir build && cd build

# 配置和构建
cmake ..
cmake --build . --config Release

# 运行 Tracy 分析器
./Tracy-release

3. 使用 Meson 构建

Bash
# 配置构建
meson setup build

# 编译
meson compile -C build

# 运行
./build/Tracy

使用示例

快速集成 Tracy 到你的项目中

基础 C++ 集成

在你的 C++ 项目中集成 Tracy 非常简单,只需包含头文件并添加性能标记宏。Tracy 会自动追踪这些区域的性能数据。

  • 最小化代码侵入
  • 零配置开箱即用
  • 支持条件编译
  • 运行时开销极低
C++
// 包含 Tracy 客户端
#include "TracyClient.cpp"

void MyFunction() {
    // 标记性能分析区域
    ZoneScoped;

    // 你的代码逻辑
    for (int i = 0; i < 1000; i++) {
        // 嵌套区域分析
        ZoneScopedN("Inner Loop");
        ProcessData(i);
    }

    // 标记帧边界
    FrameMark;
}
Python
from tracy_client import *

# 使用装饰器标记函数
@profile
def process_data(data):
    with Zone("Data Processing"):
        result = expensive_operation(data)

    with Zone("Result Validation"):
        validate(result)

    return result

Python 集成

Tracy 也支持 Python 性能分析,通过简单的装饰器和上下文管理器,即可为 Python 代码添加性能追踪。

  • Pythonic API 设计
  • 装饰器和上下文管理器
  • 自动内存追踪
  • 与 C++ 混合分析

GPU 性能追踪示例

C++ (Vulkan)
// Vulkan GPU 性能追踪
#include "TracyVulkan.hpp"

// 创建 Tracy Vulkan 上下文
auto tracyCtx = TracyVkContext(physicalDevice, device, queue, commandBuffer);

// 在命令缓冲区中标记 GPU 区域
TracyVkZone(tracyCtx, commandBuffer, "Render Pass");

// 你的渲染代码
vkCmdBeginRenderPass(...);
vkCmdDraw(...);
vkCmdEndRenderPass(...);

文档与学习资源

丰富的文档和教程助你快速上手

📚

完整文档

详细的 PDF 用户手册,涵盖所有功能和最佳实践

下载 PDF
🎥

视频教程

官方 YouTube 频道提供从 v0.2 到 v0.8 的完整教程系列

观看教程
🎤

CppCon 演讲

Marcos Slomp 在 CppCon 2023 的深度介绍

观看演讲
🌐

在线演示

交互式在线演示,体验 Tracy 的强大功能

访问演示

加入 Tracy 社区

Tracy 拥有活跃的开源社区,欢迎贡献代码、报告问题或参与讨论

GitHub 仓库

13.3k Stars | 899 Forks | 181 贡献者 | 9,310+ 提交

🚀

活跃开发

持续更新维护,最新版本 v0.13.0 (2025-11-11)

💖

赞助支持

通过 GitHub Sponsors 支持项目持续发展

📝

开源协议

BSD-3-Clause 许可证,商业友好

访问 GitHub 仓库 赞助项目