sig
module Test :
sig
type t = Bench.Test.t
val create : name:string -> ?key:int -> (unit -> unit) -> t
val create_indexed :
name:string ->
args:int list ->
?key:int -> (int -> (unit -> unit) Core.Std.Staged.t) -> t
end
module Variable :
sig
type t =
[ `Compactions
| `Cycles
| `Major_allocated
| `Major_collections
| `Minor_allocated
| `Minor_collections
| `Nanos
| `One
| `Promoted
| `Runs ]
val t_of_sexp : Sexplib.Sexp.t -> t
val __t_of_sexp__ : Sexplib.Sexp.t -> t
val sexp_of_t : t -> Sexplib.Sexp.t
end
module Run_config :
sig
type t = Bench.Run_config.t
val create :
?verbosity:[ `High | `Low ] ->
?no_compactions:bool ->
?time_quota:Core.Std.Time.Span.t ->
?sampling_type:[ `Geometric of float | `Linear of int ] ->
?stabilize_gc_between_runs:bool ->
?fork_each_benchmark:bool -> unit -> t
end
module Display_config :
sig
type t = Bench.Display_config.t
val create :
?don't_display_table:bool ->
?limit_width_to:int ->
?display:Textutils.Ascii_table.Display.t ->
?ascii_table:bool ->
?show_absolute_ci:bool ->
?show_percentage:bool ->
?show_speedup:bool ->
?show_samples:bool -> ?show_all_values:bool -> unit -> t
end
module Analysis_config :
sig
type t = Bench.Analysis_config.t
val create :
responder:Variable.t ->
predictors:Variable.t list ->
?bootstrap_trials:int ->
?r_square:bool -> ?regression_name:string -> unit -> t
val nanos_vs_runs : t
val cycles_vs_runs : t
val nanos : predictors:Variable.t list -> t
val cycles : predictors:Variable.t list -> t
val allocations_vs_runs : t list
val gc_vs_runs : t list
val default : t list
end
module Measurement :
sig
type t = Bench.Measurement.t
val name : t -> string
val t_of_sexp : Sexplib.Sexp.t -> t
val sexp_of_t : t -> Sexplib.Sexp.t
end
val bench :
?run_config:Run_config.t ->
?analysis_configs:Analysis_config.t list ->
?display_config:Display_config.t -> Test.t list -> unit
val measure : ?run_config:Run_config.t -> Test.t list -> Measurement.t list
val analyze :
?analysis_configs:Analysis_config.t list ->
Measurement.t -> Analysis_result.t Core.Std.Or_error.t
val display :
?display_config:Display_config.t -> Analysis_result.t list -> unit
val save_measurements :
Measurement.t list -> to_filename:(Measurement.t -> string) -> unit
val load_measurements : filenames:string list -> Measurement.t list
val make_command : Test.t list -> Core.Std.Command.t
val make_command_ext :
summary:string ->
extra_spec:('a, unit -> unit) Core.Std.Command.Spec.t ->
f:(Analysis_config.t list * Display_config.t *
[ `From_file of string list
| `Run of (Measurement.t -> string) option * Run_config.t ] -> 'a) ->
Core.Std.Command.t
end