From c248c9b677fa8a02925f0ac72b1c388ff86bfba8 Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Thu, 21 Mar 2013 12:35:22 +0100 Subject: [PATCH] added some benchs of Sequence vs Enum --- tests/benchs.ml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tests/benchs.ml b/tests/benchs.ml index def296d9..733e1e21 100644 --- a/tests/benchs.ml +++ b/tests/benchs.ml @@ -1,6 +1,34 @@ (** Benchmarking *) +(** {2 Sequence/Enum} *) + +let _ = + let n = 1_000_000 in + let seq () = Sequence.fold (+) 0 (Sequence.int_range ~start:0 ~stop:n) in + let enum () = Enum.fold (+) 0 (Enum.int_range 0 n) in + Bench.bench + [ "sequence.fold", seq; + "enum.fold", enum; + ] + +let _ = + let n = 100_000 in + let seq () = + let open Sequence in + let seq = int_range ~start:0 ~stop:n in + let seq = flatMap (fun x -> int_range ~start:x ~stop:(x+10)) seq in + fold (+) 0 seq in + let enum () = + let open Enum in + let seq = int_range 0 n in + let seq = flatMap (fun x -> int_range x (x+10)) seq in + fold (+) 0 seq in + Bench.bench + [ "sequence.flatMap", seq; + "enum.flatMap", enum; + ] + (** {2 Cache} *) (** Cached fibonacci function *)