25 lines
646 B
OCaml
25 lines
646 B
OCaml
|
|
open Stdune
|
||
|
|
module Digest = Dune_digest
|
||
|
|
module Caml = Stdlib
|
||
|
|
|
||
|
|
let create_file size =
|
||
|
|
let name = Printf.sprintf "digest-bench-%d" size in
|
||
|
|
let out = open_out name in
|
||
|
|
for _ = 1 to size do
|
||
|
|
output_char out 'X'
|
||
|
|
done;
|
||
|
|
close_out out;
|
||
|
|
at_exit (fun () -> Unix.unlink name);
|
||
|
|
name
|
||
|
|
;;
|
||
|
|
|
||
|
|
let%bench_fun ("string" [@indexed len = [ 10; 100; 1_000; 10_000; 1_000_000 ]]) =
|
||
|
|
let s = String.make len 'x' in
|
||
|
|
fun () -> ignore (Digest.string s)
|
||
|
|
;;
|
||
|
|
|
||
|
|
let%bench_fun ("file" [@indexed len = [ 10; 100; 1_000; 10_000; 100_000; 1_000_000 ]]) =
|
||
|
|
let f = Path.of_filename_relative_to_initial_cwd (create_file len) in
|
||
|
|
fun () -> ignore (Digest.file f)
|
||
|
|
;;
|