X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=utils.ml;fp=utils.ml;h=0000000000000000000000000000000000000000;hb=4b52da1a20a4fe031930bb96d2ca46bec06dc529;hp=b076733991c614ecf0244136a33b24880c89c1d1;hpb=a223af3254fb51c279cfbccdc18c59484fdca74e;p=SXSI%2Fxpathcomp.git diff --git a/utils.ml b/utils.ml deleted file mode 100644 index b076733..0000000 --- a/utils.ml +++ /dev/null @@ -1,102 +0,0 @@ -IFNDEF UTILS_ML__ -THEN -DEFINE UTILS__ML__ - - -IFDEF WORDSIZE64 -THEN - DEFINE WORDSIZE = 64 - DEFINE HALFWORDSIZE = 32 - DEFINE INTSIZE = 63 - DEFINE HALFINTSIZE = 31 - DEFINE HALF_MAX_INT = 2305843009213693951 - DEFINE HPARAM = 65599 - DEFINE HPARAM2 = 4303228801 - DEFINE HPARAM3 = 282287506116799 - DEFINE HPARAM4 = 71034040046345985 -ELSE - DEFINE WORDSIZE = 32 - DEFINE HALFWORDSIZE = 16 - DEFINE INTSIZE = 31 - DEFINE HALFINTSIZE = 15 - DEFINE HALF_MAX_INT = 536870911 - 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 -DEFINE PRIME3 = 83 -DEFINE PRIME4 = 223 -DEFINE PRIME5 = 491 -DEFINE PRIME6 = 733 -DEFINE PRIME7 = 1009 -DEFINE PRIME8 = 4093 -DEFINE PRIME9 = 65599 (* Magic Constant used for hashing *) - -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 () = - let pid = Unix.getpid() in - let cin = open_in (Printf.sprintf "/proc/%i/status" pid) in - let pattern = "VmRSS" in - let matchline s = let l = String.length pattern in - if (String.length s) < l then false - else let s' = String.sub s 0 l in - (s' = pattern) - in - let rec loop () = - let s = input_line cin in - if matchline s then s - else loop () - in - let s = try loop() with _ -> "Could not read mem!" - in - close_in cin; - s -;; - -let l = ref [] ;; -let init_timer() = l := [];; -let time_mem f x = - let s1 = read_procmem() in - let t1 = Unix.gettimeofday () in - let r = f x in - let s2 = read_procmem() in - let t2 = Unix.gettimeofday () in - let t = (1000. *. (t2 -. t1)) in - l:= t::!l; - Printf.eprintf " %fms\n%!" t ; - Printf.eprintf "Mem use before: %s\n%!" s1; - Printf.eprintf "Final Mem: %s\n\n\n%!" s2; - r -;; -let time f ?(count=1) ?(msg="") 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 "%s: run %i/%i, %fms\n%!" msg 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__ *)