chore: repair build of benchmarks, fix warnings

This commit is contained in:
Simon Cruanes 2018-12-13 18:38:53 -06:00
parent 97d4ac78a5
commit 1150098cd2
7 changed files with 35 additions and 30 deletions

View file

@ -13,10 +13,15 @@ clean:
doc: doc:
@dune build @doc @dune build @doc
BENCH_TARGETS=bench_persistent_read.exe bench_persistent.exe BENCH_TARGETS= benchs.exe bench_persistent_read.exe bench_persistent.exe
benchs: benchs:
dune build $(addprefix bench/, $(BENCH_TARGETS)) @for i in $(BENCH_TARGETS) ; do \
echo "run benchmark $$i" ; \
dune exec "src/bench/$$i" ; done
build-benchs:
@dune build $(addprefix src/bench/, $(BENCH_TARGETS))
examples: examples:
dune build examples/test_sexpr.exe dune build examples/test_sexpr.exe

View file

@ -1,8 +0,0 @@
(executables
((names (bench_persistent_read bench_persistent))
(libraries (sequence benchmark))
(flags (:standard -w +a-4-42-44-48-50-58-32-60@8 -safe-string -color always))
(ocamlopt_flags (:standard -O3 -color always
-unbox-closures -unbox-closures-factor 20))
))

View file

@ -93,21 +93,21 @@ let persistent_mlist seq =
MList.to_seq l MList.to_seq l
let bench_mlist n = let bench_mlist n =
for i = 0 to 100 do for _i = 0 to 100 do
let _ = persistent_mlist Sequence.(1 -- n) in let _ = persistent_mlist Iter.(1 -- n) in
() ()
done done
let bench_naive n = let bench_naive n =
for i = 0 to 100 do for _i = 0 to 100 do
let l = Sequence.to_rev_list Sequence.(1 -- n) in let l = Iter.to_rev_list Iter.(1 -- n) in
let _ = Sequence.of_list (List.rev l) in let _ = Iter.of_list (List.rev l) in
() ()
done done
let bench_current n = let bench_current n =
for i = 0 to 100 do for _i = 0 to 100 do
let _ = Sequence.persistent Sequence.(1 -- n) in let _ = Iter.persistent Iter.(1 -- n) in
() ()
done done

View file

@ -93,26 +93,26 @@ let persistent_mlist seq =
MList.to_seq l MList.to_seq l
let bench_mlist n = let bench_mlist n =
persistent_mlist Sequence.(1 -- n) persistent_mlist Iter.(1 -- n)
let bench_list n = let bench_list n =
let l = Sequence.to_rev_list Sequence.(1 -- n) in let l = Iter.to_rev_list Iter.(1 -- n) in
Sequence.of_list (List.rev l) Iter.of_list (List.rev l)
let bench_naive n = let bench_naive n =
let s = Sequence.(1 -- n) in let s = Iter.(1 -- n) in
Sequence.iter ignore s ; Iter.iter ignore s ;
s s
let bench_current n = let bench_current n =
Sequence.persistent Sequence.(1 -- n) Iter.persistent Iter.(1 -- n)
let bench_array n = let bench_array n =
let a = Sequence.to_array Sequence.(1 -- n) in let a = Iter.to_array Iter.(1 -- n) in
Sequence.of_array a Iter.of_array a
let read s = let read s =
Sequence.map (fun x -> x + 1) s Iter.map (fun x -> x + 1) s
let () = let () =
let bench_n n = let bench_n n =

View file

@ -1,6 +1,6 @@
module S = Sequence module S = Iter
open Sequence.Infix open Iter.Infix
let small = [10;20;50;100;500] let small = [10;20;50;100;500]
let medium = small @ [1000;10_000;100_000] let medium = small @ [1000;10_000;100_000]

8
src/bench/dune Normal file
View file

@ -0,0 +1,8 @@
(executables
(names bench_persistent_read bench_persistent benchs)
(libraries iter benchmark)
(flags :standard -w +a-4-42-44-48-50-58-32-60@8 -safe-string -color always)
(ocamlopt_flags :standard -O3 -color always
-unbox-closures -unbox-closures-factor 20)
)

View file

@ -1,11 +1,11 @@
open Sequence.Infix open Iter.Infix
let _ = let _ =
let n = int_of_string Sys.argv.(1) in let n = int_of_string Sys.argv.(1) in
let seq = 0 -- n in let seq = 0 -- n in
let start = Unix.gettimeofday () in let start = Unix.gettimeofday () in
seq |> Sequence.persistent |> Sequence.fold (+) 0 |> ignore; seq |> Iter.persistent |> Iter.fold (+) 0 |> ignore;
let stop = Unix.gettimeofday () in let stop = Unix.gettimeofday () in
Format.printf "iter on %d: %.4f@." n (stop -. start); Format.printf "iter on %d: %.4f@." n (stop -. start);
() ()