ThreadLocalCounters.jl
ThreadLocalCounters
— ModuleThreadLocalCounters
ThreadLocalCounters.jl provides a macro @tlc
to associate a counter to a code location.
julia> using ThreadLocalCounters
julia> hello_world() = @tlc hello_world;
The installed counters can be enumerated using ThreadLocalCounters.list
:
julia> ThreadLocalCounters.list(; all = true)
1-element Vector{ThreadLocalCounters.Internal.ThreadLocalCounter}:
[0] hello_world @Main #= REPL[2]:2 =#
The thread-local counter is incremented each time the program hits the associated code location:
julia> hello_world();
julia> ThreadLocalCounters.list()
1-element Vector{ThreadLocalCounters.Internal.ThreadLocalCounter}:
[1] hello_world @Main #= REPL[2]:2 =#
julia> hello_world();
julia> ThreadLocalCounters.list()
1-element Vector{ThreadLocalCounters.Internal.ThreadLocalCounter}:
[2] hello_world @Main #= REPL[2]:2 =#
ThreadLocalCounters.@tlc
— Macro@tlc [name]
Count the time this expression is evaluated using thread-local counters.
Examples
julia> using ThreadLocalCounters
julia> hello_world() = @tlc hello_world;
ThreadLocalCounters.list
— FunctionThreadLocalCounters.list(; all = false)
Get a list of all thread-local counters. The caller must ensure that no thread is accessing the counters.
Pass all = true
to include counters with zero counts.
ThreadLocalCounters.clear
— FunctionThreadLocalCounters.clear()
Reset all counters. The caller must ensure that no thread is accessing the counters.