package bechamel

  1. Overview
  2. Docs

Module Bechamel.BenchmarkSource

Sourcetype sampling = [
  1. | `Linear of int
  2. | `Geometric of float
]
Sourcetype configuration

Type of configuration.

Sourceval cfg : ?limit:int -> ?quota:Time.span -> ?kde:int option -> ?sampling:sampling -> ?stabilize:bool -> ?compaction:bool -> ?start:int -> unit -> configuration

cfg () returns a configuration needed to run a benchmark. It accepts several optional arguments:

  • limit is the maximum of samples allowed (default to 3000).
  • quota is the maximum of time allowed (default to 1 second).
  • kde : optional number of additional measurements taken to enable kde and histogram js display (default None). If kde = Some _, the same time limit quota is applied, meaning the actual time limit for all the benchmarks is actually 2xquota.
  • sampling is the way to grow the run metric (default to `Geometric 1.0.1).
  • stabilize allows the benchmark to stabilize the garbage collector before each run (default to true).
  • start is the first value of the run metric (default to 1).
Sourcetype stats = {
  1. start : int;
  2. sampling : sampling;
  3. stabilize : bool;
  4. quota : Time.span;
  5. limit : int;
  6. instances : string list;
  7. samples : int;
  8. time : Time.span;
}

Type of statistics of one benchmark. It contains which configuration the benchmark used and:

  • How long was the benchmark, see time.
  • How many runs the benchmark did, see samples.

It's useful to introspect which limit was reached (the time or the limit of runs).

Sourcetype t = {
  1. stats : stats;
  2. lr : Measurement_raw.t array;
  3. kde : Measurement_raw.t array option;
}

Results of one benchmark:

  • stats contains all the information about the benchmarks as described above
  • lr contains the measurements necessary for oLS and ransac analysis.
  • kde optionally contains more measurements to enable the display of density function (KDE or histogram) with the js display.

run cfg measures test returns samples of measures according to the given configuration cfg. It returns statistics of the benchmark too.

Sourceval all : configuration -> Measure.witness list -> Test.t -> (string, t) Hashtbl.t

all cfg measures tests calls run for each element of tests (see Test.elements).

OCaml

Innovation. Community. Security.