I have been working on an interface for the tracy profiler to profile a multithreaded program I am working on.
There are two closely related packages.
- ZoneProfilers.jl provides utilities to mark up code and a
Profilerinterface. - ZoneProfilerTracy.jl has the tracy client C library wrapper that implements the
Profilerinterface.
Like TimerOutputs.jl, tracy requires code to be instrumented for timing.
ZoneProfilers.jl is based on the existing Tracy.jl package, but has a different API and approach to handling multithreading.
Quick Start
julia> import TracyProfiler_jll
julia> using ZoneProfilerTracy: TracyProfiler
julia> using ZoneProfilers
julia> profiler = TracyProfiler(TracyProfiler_jll)
julia> @zone profiler name="my zone" begin
zone_text!(profiler, "hello tracy")
sleep(0.5)
end

