Module Landmark
module Graph : sig ... endAll about exporting profiling results
external clock : unit -> Stdlib.Int64.t = "caml_highres_clock"This function is used by the landmark infrastructure to measure the number of cycles inside landmarks.
Landmarks
val register : ?location:string -> string -> landmarkregister nameregisters a new landmark. Should always be called at top-level.
val enter : landmark -> unitBegins a landmark block. /!\ Landmark blocks should be well-nested, otherwise a failure will be raised during profiling.
val exit : landmark -> unitEnds a landmark block.
val wrap : landmark -> ('a -> 'b) -> 'a -> 'bPuts landmark blocks around a function (and close the block and re-raise in case of uncaught exception).
val unsafe_wrap : landmark -> ('a -> 'b) -> 'a -> 'bPuts landmark blocks around a function without catching exceptions.
Counter and samplers
val register_counter : string -> counterregister_counter nameregisters a new counter. Should always be called at top-level.
val increment : ?times:int -> counter -> unitIncrements the number of calls attached to the counter.
val register_sampler : string -> samplerregister_counter nameregisters a new sampler.
val sample : sampler -> float -> unitCollects a float.
Manage profiling
type profile_output=Where to output results.
type textual_option={threshold : float;}type profile_format=|JSONEasily parsable export format.
|Textual of textual_optionConsole friendly output; nodes below the threshold (0.0 <= threshold <= 100.0) are not displayed in the callgraph.
The output format for the results.
type profiling_options={debug : bool;Activates a verbose mode that outputs traces on stderr each time the landmarks primitives are called. Default: false.
allocated_bytes : bool;Also collect
Gc.allocated_bytes during profiling.sys_time : bool;Also collect
Sys.time timestamps during profiling.recursive : bool;When false, the recursive instances of landmarks (entering a landmark that has already been entered) are ignored (the number of calls is updated but it does not generate a new node in the callgraph).
output : profile_output;Specify where to output the results.
format : profile_format;Specify the output format.
}The profiling options control the behavior of the landmark infrastructure.
val default_options : profiling_optionsThe default
profiling_options.
val set_profiling_options : profiling_options -> unitSets the options.
val profiling_options : unit -> profiling_optionsGet the options.
val start_profiling : ?profiling_options:profiling_options -> unit -> unitStarts the profiling.
val export : ?label:string -> unit -> Graph.graphExport the profiling information of the current process.
val export_and_reset : ?label:string -> unit -> Graph.graphExport the profiling information of the current process; then reset internal state.
val merge : Graph.graph -> unitAggregate the profiling information (exported by another process) to the current one. This should is used by the master process to merge exported profiles of workers.