Safe closure version
[SXSI/xpathcomp.git] / utils.ml
index 2e02bc5..69754f5 100644 (file)
--- a/utils.ml
+++ b/utils.ml
@@ -83,14 +83,17 @@ let time_mem f x =
     Printf.eprintf "Final Mem: %s\n\n\n%!" s2;
     r
 ;;
-let time f x =
+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
-    l:= t::!l;
-    Printf.eprintf "  %fms\n%!" t ;
-    r
+  if i > count then  (l:= t::!l;r)
+  else begin
+  Printf.eprintf "run %i/%i,  %fms\n%!" i count t;
+  loop (i+1) end
+  in loop 1
 ;;
 let total_time () =  List.fold_left (+.) 0. !l;;