Mavryk_benchmark.BenchmarkThis module defines several signatures to create a benchmark. * The most generic is S; it provides a rather complete control on benchmark creation. * Simple and Simple_with_num can be used to ease benchmark creation, with simpler parameters. Registration functions in Registration will convert these simple interfaces back to S. * All the common parameters for these signatures are declared in Benchmark_base.
Some benchmarks depend on others, and some are for generic parameters that most benchmarks depend on. We need this information in order to correctly infer the values of parameters after a benchmark run; the user provides it with a group.
* Standalone: benchmarks that don't depend on others (except generic ones). This is the value to use if you're not sure whether you should group your benchmark. * Group: benchmarks that belong to the given inference group. Note that setting a benchmark with a group that is referenced only in this benchmark will produce the same inference results as with Standalone. * Generic: for generic parameters only.
Described the purpose of the benchmark. * Generate_code of destination: generates code at the given destination file, prefixed by "src/proto_alpha/lib_protocol/" and suffixed by "_costs_generated.ml". * Other_purpose of purpose: any other purpose. The goal is to explain why the function is benchmarked since it does not produce a cost function.
module type Benchmark_base = sig ... endCommon declarations used by the different module types of benchmarks
module type Simple = sig ... endA simplification of S below, when only one model is defined and no particular process is needed to generate benchmarks.
module type Simple_with_num = sig ... endA simplification of S below, when only one model is defined.
module type S = sig ... endThe module type of benchmarks
type t = (module S)type simple = (module Simple)type simple_with_num = (module Simple_with_num)val pp : Stdlib.Format.formatter -> t -> unitval name : t -> Namespace.tGet the name of a benchmark
val info : t -> stringGet the description of a benchmark
val tags : t -> string listGet the tags of a benchmark
val get_free_variable_set : (module S) -> Free_variable.Set.tReturns the free variables occur in the models of the benchmark.