From 3bffb890f9ee0ed82e8942598a84099d7f77777c Mon Sep 17 00:00:00 2001 From: Chris Jensen Date: Sat, 9 May 2020 16:09:28 +0100 Subject: [PATCH] Use List.init instead of create_for, move setup code out of critical path --- test-bin/echo/echo_bench.ml | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/test-bin/echo/echo_bench.ml b/test-bin/echo/echo_bench.ml index 21e731e5d..24a2cbedf 100755 --- a/test-bin/echo/echo_bench.ml +++ b/test-bin/echo/echo_bench.ml @@ -7,21 +7,19 @@ let () = Logs.set_level (Some Logs.Info); Logs.set_reporter (Logs_fmt.reporter ()) -let rec create_for v = function - | 0. -> [] - | n -> v n :: (create_for v (n-.1.)) - let run_client service = - let n = 100000. in - let ops = n |> create_for (fun i -> + let n = 100000 in + let ops = List.init n (fun i -> + let payload = Int.to_string i in + let desired_result = "echo:" ^ payload in fun () -> - Echo.ping service (Float.to_string i) >>= fun res -> - Lwt.return (res = "echo:" ^ (Float.to_string i)) + Echo.ping service payload >>= fun res -> + Lwt.return (res = desired_result) ) in let st = Unix.gettimeofday () in Lwt_list.map_p (fun v -> v ()) ops >>= fun _ -> let ed = Unix.gettimeofday () in - let rate = n /. (ed -. st) in + let rate = (Int.to_float n) /. (ed -. st) in Logs.info (fun m -> m "rate = %f" rate ); Lwt.return_unit