live_connect wrapped Worker(addr, port) with no memoryLimit, so the binding default (-1, unlimited) applied. A long-lived live session on a busy target grows unbounded -- every zone/message/ memory event stays resident until disconnect -- and can OOM-kill the whole server process rather than just that one instance. Worker already has a graceful cap: TracyWorker.cpp's receive loop checks memoryLimit and calls QueryTerminate() + a clean disconnect once exceeded, instead of continuing to grow. Just wasn't wired up from Python. Adds memory_limit_mb to live_connect (defaults to TRACY_MCP_LIVE_MEMORY_LIMIT_MB, 8192 if unset; 0 disables), converts to bytes for the Worker constructor, and reports the active limit in the connect response.
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 graphics/compute APIs: OpenGL, Vulkan, Direct3D 11/12, Metal, OpenCL, CUDA, WebGPU.), 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



