[ANN] ZoneProfilers.jl: Another interface for the Tracy profiler

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.

  1. ZoneProfilers.jl provides utilities to mark up code and a Profiler interface.
  2. ZoneProfilerTracy.jl has the tracy client C library wrapper that implements the Profiler interface.

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