core_profiler

Profiling library
Library core_profiler.offline_tool
module Interval := Interval_lib.Interval
module Interval_subject : sig ... end
module Raw : sig ... end

A raw or "unfiltered" interest. Specifically, an Event_generator.t can produce events given a buffer and a list of raw interests, which are typically then "filtered" by a Filter.t (a filter takes a list of actual interests / Interest.ts). An event will only ever match one Interest.Raw.t (indeed, events are keyed by raw interests in Event_generator.t) whereas it could match several distinct Interest.ts (e.g., overlapping intervals)

A t specifies some subset of the core-profiler file that we're interested in.

include Sexplib0.Sexpable.S1 with type 'a t := 'a t
val t_of_sexp : ( Sexplib0.Sexp.t -> 'a ) -> Sexplib0.Sexp.t -> 'a t
val sexp_of_t : ( 'a -> Sexplib0.Sexp.t ) -> 'a t -> Sexplib0.Sexp.t
include Ppx_compare_lib.Comparable.S1 with type 'a t := 'a t
val compare : ( 'a -> 'a -> int ) -> 'a t -> 'a t -> int
module I : sig ... end

When keyed by Probe_id.ts, interests are comparable, hashable.

val raw : 'a t -> 'a Raw.t

If this is a filtered interest, this drills down to the 'raw' unfiltered interest. Currently, this means it retrieves the first argument of an In_interval interest, and is the identity function otherwise.

val string_t_of_sexp : Core.Sexp.t -> string t

In the presence of special characters, Fn.compose string_t_of_string string_t_to_string might not be the identify function; indeed, it may even raise an error.

val sexp_of_string_t : string t -> Core.Sexp.t
val string_t_of_string : string -> string t
val string_t_to_string : string t -> string
val lookup_ids : string t -> Util.Name_map.t -> Core_profiler.Probe_id.t t
val lookup_names : Core_profiler.Probe_id.t t -> Reader.Header.t -> string t
val id_t_to_string : Core_profiler.Probe_id.t t -> Reader.Header.t -> string

Retrieve the Probe_type.t associated with this interest, by drilling down to the relevant Probe_id.t of the group or single

val is_path : _ t -> bool

If necessary, coerce the units of any values in this interest to those that the probe that the interest refers to is quoted in.

val readme : string Core.Lazy.t
val arg_type : string t Core.Command.Spec.Arg_type.t
val list_arg : string t list Core.Command.Param.t
val default_interests : Reader.Header.t -> Core_profiler.Probe_id.t t list

Generate a (hopefully sane) set of default interests for the items in this header