Plasma GitLab Archive
Projects Blog Knowledge

open Printf

let measure name f =
  let t0 = Unix.gettimeofday() in
  f();
  let t1 = Unix.gettimeofday() in
  printf "Time for %s: %.2f\n%!" name (t1-.t0)

let () =
  let n = 1_000_000 in
  let a = Array.init n (fun i -> n-i) in
  measure
    "Array.sort"
    (fun () -> Array.sort Pervasives.compare a);

  let a = Array.init n (fun i -> n-i) in
  measure
    "Mapred_sort.merge_sort"
    (fun () -> Mapred_sort.merge_sort Pervasives.compare a);

  let ba = Bigarray.Array1.create Bigarray.int Bigarray.c_layout n in
  for k = 0 to n-1 do
    ba.{k} <- n-k
  done;
  measure
    "Mapred_sort.ba_merge_sort"
    (fun () -> Mapred_sort.ba_merge_sort Pervasives.compare ba)


    

This web site is published by Informatikbüro Gerd Stolpmann
Powered by Caml