Safety commit
[SXSI/xpathcomp.git] / utils.ml
index ce99932..2e02bc5 100644 (file)
--- a/utils.ml
+++ b/utils.ml
@@ -13,7 +13,7 @@ THEN
     DEFINE HPARAM = 65599
     DEFINE HPARAM2 = 4303228801
     DEFINE HPARAM3 = 282287506116799
-
+    DEFINE HPARAM4 = 71034040046345985
 ELSE
     DEFINE WORDSIZE = 32
     DEFINE HALFWORDSIZE = 16
@@ -23,13 +23,14 @@ ELSE
     DEFINE HPARAM = 65599
     DEFINE HPARAM2 = 8261505
     DEFINE HPARAM3 = 780587199
-
+    DEFINE HPARAM4 = 549173308
 END
 
 
 DEFINE HASHINT2 (x,y) = ((x)+HPARAM*(y))
 DEFINE HASHINT3 (x,y,z) = ((x)  + (y) * HPARAM + (z) * HPARAM2)
 DEFINE HASHINT4 (x,y,z,t) =  ((x)  + (y) * HPARAM + (z)*HPARAM2 + (t)* HPARAM3)
+DEFINE HASHINT5 (x,y,z,t,u) =  ((x)  + (y) * HPARAM + (z)*HPARAM2 + (t)* HPARAM3 + (u)*HPARAM4)
 
 DEFINE PRIME1 = 7
 DEFINE PRIME2 = 19
@@ -69,7 +70,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
@@ -79,7 +80,16 @@ 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 x =
+  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
 ;;
 let total_time () =  List.fold_left (+.) 0. !l;;