X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=utils.ml;h=36334f6a5b77dd9083ca2ab0d36d0659f0df70c9;hb=bf2b1a91300ace1e7e83bd78f868a269d86498f9;hp=658d84e7310f24945e59fe6dcd2bfbee13c08386;hpb=6a7025fee3c050eff58baa536a14d80baf5c1b87;p=SXSI%2Fxpathcomp.git diff --git a/utils.ml b/utils.ml index 658d84e..36334f6 100644 --- a/utils.ml +++ b/utils.ml @@ -46,6 +46,9 @@ DEFINE SMALL_H_SIZE = PRIME2 DEFINE MED_H_SIZE = PRIME5 DEFINE BIG_H_SIZE = PRIME8 +DEFINE SMALL_A_SIZE = 128 +DEFINE MED_A_SIZE = 2048 +DEFINE BIG_A_SIZE = 8192 let read_procmem () = @@ -70,7 +73,7 @@ let read_procmem () = let l = ref [] ;; let init_timer() = l := [];; -let time f x = +let time_mem f x = let s1 = read_procmem() in let t1 = Unix.gettimeofday () in let r = f x in @@ -80,9 +83,20 @@ let time f x = l:= t::!l; Printf.eprintf " %fms\n%!" t ; Printf.eprintf "Mem use before: %s\n%!" s1; - Printf.eprintf "Mem use after: %s\n\n\n%!" s2; + Printf.eprintf "Final Mem: %s\n\n\n%!" s2; r ;; +let time f ?(count=1) x = + let rec loop i = + let t1 = Unix.gettimeofday () in + let r = f x in + let t2 = Unix.gettimeofday () in + let t = (1000. *. (t2 -. t1)) in + Printf.eprintf "run %i/%i, %fms\n%!" i count t; + if i >= count then (l:= t::!l;r) + else loop (i+1) + in loop 1 +;; let total_time () = List.fold_left (+.) 0. !l;; END (* IFNDEF UTILS__ML__ *)