simpler interface for CCbench global registration

This commit is contained in:
Simon Cruanes 2014-11-13 22:33:15 +01:00
parent b8d84de4dc
commit ac0f18d3c7
3 changed files with 22 additions and 31 deletions

View file

@ -238,17 +238,15 @@ let run_main ?(argv=Sys.argv) ?(out=Format.std_formatter) t =
(** {2 Global Registration} *) (** {2 Global Registration} *)
module Glob = struct let tree_ = ref (Multiple ([], SMap.empty))
let tree_ = ref (Multiple ([], SMap.empty))
let get () = !tree_ let global_bench () = !tree_
let register ?(path=[]) new_t = let register ?(path=[]) new_t =
tree_ := merge_ !tree_ (prefix path new_t) tree_ := merge_ !tree_ (prefix path new_t)
let register' ~path new_t = let register' ~path new_t =
register ~path:(parse_path path) new_t register ~path:(parse_path path) new_t
let run_main ?argv ?out () = let run_main ?argv ?out () =
run_main ?argv ?out !tree_ run_main ?argv ?out !tree_
end

View file

@ -97,19 +97,17 @@ val run_main :
(** {2 Global Registration} *) (** {2 Global Registration} *)
module Glob : sig val register : ?path:path -> bench -> unit
val register : ?path:path -> bench -> unit (** Register a benchmark to the global register of benchmarks (a global tree) *)
(** Register a benchmark to the global register of benchmarks (a global tree) *)
val register' : path:string -> bench -> unit val register' : path:string -> bench -> unit
(** Same as {!register} but applies {!parse_path} first to its argument *) (** Same as {!register} but applies {!parse_path} first to its argument *)
val get : unit -> bench val global_bench : unit -> bench
(** Global bench tree *) (** Global bench tree, built from calls to {!register} *)
val run_main : val run_main :
?argv:string array -> ?argv:string array ->
?out:Format.formatter -> ?out:Format.formatter ->
unit -> unit unit -> unit
(** Same as {!run_main} but on the global tree of benchmarks *) (** Same as {!run_main} but on the global tree of benchmarks *)
end

View file

@ -45,7 +45,7 @@ module L = struct
(* MAIN *) (* MAIN *)
let bench = CCBench.( let () = CCBench.register CCBench.(
"list" >::: "list" >:::
[ "flat_map" >:: [ "flat_map" >::
map_int map_int
@ -64,8 +64,6 @@ module L = struct
; bench_append ~time:4, 100_000] ; bench_append ~time:4, 100_000]
] ]
) )
let () = CCBench.Glob.register bench
end end
module Vec = struct module Vec = struct
@ -105,18 +103,15 @@ module Vec = struct
; "append_naive", try_append_ append_naive_ n v2, () ; "append_naive", try_append_ append_naive_ n v2, ()
] ]
let bench = CCBench.( let () = CCBench.register CCBench.(
"vector" >::: "vector" >:::
[ "map" >:: with_int bench_map [100; 10_000; 100_000] [ "map" >:: with_int bench_map [100; 10_000; 100_000]
; "append" >:: with_int bench_append [100; 10_000; 50_000] ; "append" >:: with_int bench_append [100; 10_000; 50_000]
] ]
) )
let () =
CCBench.Glob.register bench
end end
let () = let () =
CCBench.Glob.run_main () CCBench.run_main ()