This commit is contained in:
parent
aa2ff7b2f0
commit
2f3113f55d
11742 changed files with 1223940 additions and 0 deletions
46
unikernel/duniverse/ocaml-asn1-combinators/tests/bench.ml
Normal file
46
unikernel/duniverse/ocaml-asn1-combinators/tests/bench.ml
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
(* Copyright (c) 2014-2017 David Kaloper Meršinjak. All rights reserved.
|
||||
See LICENSE.md. *)
|
||||
|
||||
let measure f =
|
||||
let t1 = Sys.time () in
|
||||
let res = f () in
|
||||
let t2 = Sys.time () in
|
||||
Printf.printf "[time] %.03f s\n%!" (t2 -. t1) ;
|
||||
res
|
||||
|
||||
let time ?(iter=1) f =
|
||||
let rec go = function
|
||||
| 1 -> f ()
|
||||
| n -> ignore (f ()) ; go (pred n) in
|
||||
measure @@ fun () -> go iter
|
||||
|
||||
let read filename =
|
||||
let fd = Unix.(openfile filename [O_RDONLY] 0) in
|
||||
Fun.protect ~finally:(fun () -> Unix.close fd)
|
||||
(fun () ->
|
||||
let chunk_size = 2048 in
|
||||
let rec read acc =
|
||||
let buf = Bytes.create chunk_size in
|
||||
let r = Unix.read fd buf 0 chunk_size in
|
||||
if r = chunk_size then
|
||||
read (buf :: acc)
|
||||
else
|
||||
Bytes.sub buf 0 r :: acc
|
||||
|> List.rev
|
||||
|> List.map Bytes.unsafe_to_string
|
||||
|> String.concat ""
|
||||
in
|
||||
read [])
|
||||
|
||||
let bench_certs filename =
|
||||
let cs = read filename in
|
||||
let rec bench n cs =
|
||||
if String.length cs = 0 then n else
|
||||
match Asn.decode X509.cert_ber cs with
|
||||
| Ok (_, cs) -> bench (succ n) cs
|
||||
| Error e -> invalid_arg (Format.asprintf "%a" Asn.pp_error e) in
|
||||
time ~iter:1 @@ fun () ->
|
||||
let n = bench 0 cs in
|
||||
Printf.printf "parsed %d certs.\n%!" n
|
||||
|
||||
let _ = bench_certs "./rondom/certs.bin"
|
||||
Loading…
Add table
Add a link
Reference in a new issue