X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=include%2Futils.ml;h=e61ee191c1505e33787270a178b01c8ae0e32514;hb=798507d52a5c11a6d852740056464241538fe76a;hp=fcb74c145bedf9f3c3597295444d8c4c1b4f5bf8;hpb=9f548bb9ce8e238184d27965a560f1af882c0627;p=SXSI%2Fxpathcomp.git diff --git a/include/utils.ml b/include/utils.ml index fcb74c1..e61ee19 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.verbose Format.err_formatter " %fms@\n%!" t ; + Logger.verbose Format.err_formatter "Mem use before: %s@\n%!" s1; + Logger.verbose Format.err_formatter "Final Mem: %s@\n@\n@\n%!" s2; r ;; @@ -103,20 +103,22 @@ let stop_perf () = Unix.kill !pid Sys.sigint let time f ?(count=1) ?(msg="") x = + if not !Config.verbose then f x + else 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.verbose Format.err_formatter "%s: " msg; + if (count != 1) then Logger.verbose Format.err_formatter "run %i/%i, " i count; + Logger.verbose 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"; r ;; let total_time () = List.fold_left (+.) 0. !l;;