package goblint-cil

  1. Overview
  2. Docs

Utilities for maintaining timing statistics

type timerModeEnum =
  1. | Disabled
    (*

    Do not collect timing information

    *)
  2. | SoftwareTimer
    (*

    Use OCaml's Unix.time for timing information

    *)
type t = {
  1. name : string;
    (*

    Name of the task

    *)
  2. mutable time : float;
    (*

    In seconds

    *)
  3. mutable ncalls : int;
    (*

    Number of repetitions. Only set if Stats.countCalls is true.

    *)
  4. mutable sub : t list;
    (*

    Subtasks

    *)
}

A timing entry

val top : t

The top-level timing entry

val reset : timerModeEnum -> unit

Resets all the timings and specifies the method to use for future timings. Call this before doing any timing.

val countCalls : bool ref

Flag to indicate whether or not to count the number of calls of to Stats.repeattime or Stats.time for each label. (default: false)

val time : string -> ('a -> 'b) -> 'a -> 'b

Time a function and associate the time with the given string. If some timing information is already associated with that string, then accumulate the times. If this function is invoked within another timed function then you can have a hierarchy of timings

val repeattime : float -> string -> ('a -> 'b) -> 'a -> 'b

repeattime is like time but runs the function several times until the total running time is greater or equal to the first argument. The total time is then divided by the number of times the function was run.

val print : out_channel -> string -> unit

Print the current stats preceeded by a message

val lookupTime : string -> float

Return the cumulative time of all calls to Stats.time and Stats.repeattime with the given label.

val timethis : ('a -> 'b) -> 'a -> 'b

Time a function and set lastTime to the time it took

val lastTime : float ref
OCaml

Innovation. Community. Security.