Tracy Profiler logo

Tracy Profiler

Nanosecond-resolution, real-time telemetry profiler for games and apps

A real‑time, nanosecond‑resolution hybrid frame and sampling profiler supporting CPU, GPU, memory, locks, and context switches across C, C++, Lua, Python, Fortran and many more languages.

Tracy Profiler banner

Overview

Overview

Tracy is a high‑precision profiler that captures performance data with nanosecond granularity. It combines frame‑based and sampling techniques, allowing developers to see both per‑frame timing and statistical distributions of code execution.

Capabilities

The tool instruments CPU code (native C/C++, Lua, Python, Fortran, etc.) and a wide range of GPU APIs—including OpenGL, Vulkan, Direct3D 11/12, Metal, OpenCL, and CUDA. It also tracks memory allocations, lock contention, and context switches, automatically linking screenshots to captured frames for visual correlation.

Deployment

Tracy runs as a separate server process that receives telemetry over the network. Instrumented applications embed lightweight macros or API calls, then stream data to the Tracy UI client, which is available for Windows, Linux, and macOS. Pre‑built Windows x64 binaries are provided, and the source can be built with CMake or Meson for other platforms.

Highlights

Nanosecond‑level timing with hybrid frame and sampling modes
Comprehensive CPU and GPU support across major graphics APIs
Multi‑language instrumentation (C, C++, Lua, Python, Fortran, etc.)
Remote telemetry with a cross‑platform graphical UI

Pros

  • Extremely fine‑grained timing enables precise bottleneck identification
  • Supports both native and GPU profiling in a single workflow
  • Broad language ecosystem through official and community bindings
  • Interactive UI visualizes timelines, flame graphs, and resource usage

Considerations

  • Instrumentation adds some runtime overhead, noticeable in tight loops
  • Steeper learning curve for newcomers to hybrid profiling concepts
  • Pre‑built binaries focus on Windows; other platforms require manual build
  • Limited built‑in cloud or web‑based dashboards

Managed products teams compare with

When teams consider Tracy Profiler, these hosted platforms usually appear on the same shortlist.

Blackfire Continuous Profiler logo

Blackfire Continuous Profiler

Low-overhead continuous profiling for app performance optimization.

Datadog Continuous Profiler logo

Datadog Continuous Profiler

Always-on code profiling to cut latency and cloud costs.

Elastic Universal Profiling logo

Elastic Universal Profiling

Whole-system, always-on profiling with no instrumentation.

Looking for a hosted option? These are the services engineering teams benchmark against before choosing open source.

Fit guide

Great for

  • Game developers needing low‑latency, per‑frame performance insight
  • Simulation engineers profiling native and GPU‑accelerated code
  • Teams working with mixed‑language codebases (e.g., C++ core with Python scripts)
  • Performance analysts requiring detailed resource attribution

Not ideal when

  • Small scripts where profiling overhead outweighs benefits
  • Projects that require out‑of‑the‑box cloud monitoring dashboards
  • Environments lacking a C++ toolchain for building the profiler
  • Users seeking a purely web‑based profiling interface

How teams use it

Frame‑by‑frame performance debugging in a game engine

Identify spikes per frame, correlate with GPU API calls, and reduce latency.

GPU kernel profiling for Vulkan compute workloads

Measure kernel execution time, memory transfers, and pinpoint bottlenecks.

Memory allocation tracking in a scientific Fortran application

Visualize allocation patterns, detect leaks, and optimize memory usage.

Cross‑language profiling of a Python‑driven simulation with C++ core

Combine Python and native call stacks to see end‑to‑end performance.

Tech snapshot

C++94%
TeX3%
C1%
Python1%
CMake1%
Fortran1%

Tags

libraryperformance-analysisgamedevelopmentgamedev-libraryprofilerperformanceprofiling-libraryprofilinggamedev

Frequently asked questions

Does Tracy require source code modifications?

Only minimal instrumentation macros are needed; you add them where you want timing data.

What platforms are supported?

Runs on Windows, Linux, and macOS, and supports OpenGL, Vulkan, Direct3D, Metal, CUDA, and OpenCL.

How does the remote telemetry work?

The profiler runs as a separate server process; instrumented applications send data over TCP/UDP to the UI client.

Is there a GUI for visualizing data?

Yes, Tracy provides a cross‑platform graphical client that displays timelines, flame graphs, and resource usage.

Can I extend Tracy to other languages?

Community bindings exist for many languages, and you can write custom wrappers using the C API.

Project at a glance

Active
Stars
15,094
Watchers
15,094
Forks
987
Repo age5 years old
Last commit3 days ago
Primary languageC++

Last synced 3 hours ago