Profiling library
type t
val add_probe : t -> ?sources:probe array -> name:string -> unit -> probe

sources should be a list of probes, specifying the edges that we care about. (i.e., we care about (s, this) for all s in sources). When using online profiling, if no sources are specified no, stats will be collected.

For offline profiling sources are less relevant. All the probe information is collected in the output and sources provides a default configuration to the profiler_tool. If no sources are specified, the offline tool will fall back to the default of "all two-probe direct paths" of a group.

val reset : t -> unit

Resetting a group avoids path/delta calculation across the reset. This shouldn't be necessary in simple cases if you specify the edges you care about, via sources or otherwise. In more complex cases with cycles, you will need to call this at the start or end of the function you are instrumenting.