Module Single_value_abstraction.Stats

Automatically computes stats about the number of calls.

module In_bits = Units.In_bits
module IntMap : sig ... end
module Log : Tracelog.S
type func_stats = {
  1. nb_args : int;
    (*

    How many arguments does the function take.

    *)
  2. nb_calls : int;
    (*

    How many times the function was called.

    *)
  3. nb_constant_returns : int;
    (*

    How many times the return value was constant.

    *)
  4. nb_constant_calls : int IntMap.t;
    (*

    For each nb_constant, how many calls with that number of constant args.

    *)
  5. return_size : int IntMap.t option;
    (*

    For each size, how many calls returning that size, if applicable.

    *)
  6. total_time : (int, Stats.compact) Stats.t;
    (*

    Total time spend in this function, in microseconds, across all calls

    *)
}

Aggregated statistics for each transfer function.

val micro_units : string list
val micro_units_with_s : string list
val nano_units : string list
val print_stats : Stdlib.Format.formatter -> (string * func_stats) list -> unit

Print individual stats for each function in individual order

val string_ljust : string -> int -> string
val pp_spread : ?justify:bool -> string list -> string -> Stdlib.Format.formatter -> (int, 'a) Stats.t -> unit
val print_summary : Stdlib.Format.formatter -> (string * func_stats) list -> unit

Print a summary comparing each functions total runtime

module Make (Sub : sig ... end) : sig ... end