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)