X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=include%2Futils.ml;h=a8c865e6abf9fbbdc3a129b88d54f4bc4e2f99cb;hb=ff7893db153ecd86099fab1c71be475dcc8272bf;hp=7d3690a599c2d2a057957ac1f9fc6aee510c4282;hpb=3791216bfb2b9d966718f83fd414e8bcd5f7a066;p=SXSI%2Fxpathcomp.git diff --git a/include/utils.ml b/include/utils.ml index 7d3690a..a8c865e 100644 --- a/include/utils.ml +++ b/include/utils.ml @@ -37,7 +37,7 @@ 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 = "VmHWM" in + let pattern = "VmStk" 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 @@ -64,9 +64,9 @@ let time_mem f x = let t2 = Unix.gettimeofday () in let t = (1000. *. (t2 -. t1)) in l:= t::!l; - Logger.print Format.err_formatter " %fms\n%!" t ; - Logger.print Format.err_formatter "Mem use before: %s\n%!" s1; - Logger.print Format.err_formatter "Final Mem: %s\n\n\n%!" s2; + Logger.print Format.err_formatter " %fms@\n%!" t ; + Logger.print Format.err_formatter "Mem use before: %s@\n%!" s1; + Logger.print Format.err_formatter "Final Mem: %s@\n@\n@\n%!" s2; r ;; @@ -105,18 +105,19 @@ let stop_perf () = let time f ?(count=1) ?(msg="") x = let rec loop i = Gc.compact(); + let oldstack = read_procmem () in let t1 = Unix.gettimeofday () in let r = f x in let t2 = Unix.gettimeofday () in let t = (1000. *. (t2 -. t1)) in Logger.print Format.err_formatter "%s: " msg; if (count != 1) then Logger.print Format.err_formatter "run %i/%i, " i count; - Logger.print Format.err_formatter "%fms" t; + Logger.print Format.err_formatter "%fms (stack size: before=%s, after=%s)@\n" t oldstack (read_procmem()); if i >= count then (l:= t::!l;r) else loop (i+1) in let r = loop 1 in - Logger.print Format.err_formatter "@\n"; + (*Logger.print Format.err_formatter "@\n"; *) r ;; let total_time () = List.fold_left (+.) 0. !l;; @@ -131,7 +132,8 @@ let next_power2 v = v+1 external vb : bool -> int = "%identity" - +let compare_int x y = vb (x > y) - vb (x < y) +let compare_int_unsafe x y = x - y END (* IFNDEF UTILS__ML__ *)