Module NewProfile

module MiniJson : sig ... end
val profile : string -> ?⁠args:(unit -> (string * MiniJson.t) list) -> (unit -> 'a) -> unit -> 'a

Profile the given function.

args is called only if profiling is active, it is used to produce additional annotations.

val is_profiling : unit -> bool
type settings = {
output : Stdlib.Format.formatter;
}
val init : settings -> unit

Profiling must not be active. Activates profiling with a fresh state.

val finish : unit -> unit

Profiling must be active. Deactivates profiling.

type accu

Profiling state accumulator.

val pause : unit -> accu option

Returns None if profiling is inactive. Deactivates profiling if it is active, returning the current state.

val resume : accu -> unit

Profiling must not be active. Activates profiling with the given state.