- Add `using GraphID = uint32_t` typedef and use it throughout for graphId-typed variables (PersistentState, matchGraphActivityToAPICall, getGraphIdFromRecord, retirement set, buffer loop). - Move matchError from matchGraphActivityToAPICall to caller sites (KERNEL, MEMCPY, MEMSET handlers). Keeping the error at the caller provides more debugging context about which activity kind failed. Remove the now-unnecessary `kind` parameter from the function. - Replace insert_or_assign with operator[] assignment in matchGraphActivityToAPICall. Access to graphLaunchCache is single-threaded (CUPTI worker), so the simpler syntax is sufficient. Remove the insert_or_assign method from ConcurrentHashMap entirely. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Tracy Profiler
A real time, nanosecond resolution, remote telemetry, hybrid frame and sampling profiler for games and other applications.
Tracy supports profiling CPU (Direct support is provided for C, C++, Lua, Python and Fortran integration. At the same time, third-party bindings to many other languages exist on the internet, such as Rust, Zig, C#, OCaml, Odin, etc.), GPU (All major graphic APIs: OpenGL, Vulkan, Direct3D 11/12, Metal, OpenCL, CUDA.), memory allocations, locks, context switches, automatically attribute screenshots to captured frames, and much more.
- Documentation for usage and build process instructions
- Releases containing the documentation (
tracy.pdf) and compiled Windows x64 binaries (Tracy-<version>.7z) as assets - Changelog
- Interactive demo
An Introduction to Tracy Profiler in C++ - Marcos Slomp - CppCon 2023
Introduction to Tracy Profiler v0.2
New features in Tracy Profiler v0.3
New features in Tracy Profiler v0.4
New features in Tracy Profiler v0.5
New features in Tracy Profiler v0.6
New features in Tracy Profiler v0.7
New features in Tracy Profiler v0.8



