X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=src%2Futils.ml;h=7e3bb4bb11d40a86829a70fce3f4378420627b36;hb=refs%2Fheads%2Fmaster;hp=23f3e91b5c39390a2925b521ea396a5689845679;hpb=c24457c0df47a48b78bdfc93c3f2e4585687c639;p=SXSI%2Fxpathcomp.git diff --git a/src/utils.ml b/src/utils.ml index 23f3e91..7e3bb4b 100644 --- a/src/utils.ml +++ b/src/utils.ml @@ -54,31 +54,6 @@ struct end -let time f ?(count=1) ?(msg="") x = - if not !Config.verbose then f x - else - let rec loop i = - Gc.compact(); - let oldmem = System.status () in - let t1 = Unix.gettimeofday () in - let r = f x in - let t2 = Unix.gettimeofday () in - let newmem = System.status () in - let t = (1000. *. (t2 -. t1)) in - Logger.verbose Format.err_formatter "@[%s: [" msg; - if (count != 1) then Logger.verbose Format.err_formatter "run %i/%i, " i count; - begin - Format.pp_open_vbox Format.err_formatter (2 + String.length msg); - Logger.verbose - Format.err_formatter - "@\n| Time: %fms@\n| Memory before: %a@\n| Memory after: %a@\n]@]@]@\n" t System.pr_mem_status oldmem System.pr_mem_status newmem; - end; - if i >= count then r - else loop (i+1) - in - loop 1 -;; - module Timing = struct let _timings = Hashtbl.create 43 @@ -107,22 +82,33 @@ module Timing = om, nm)) (infinity, 0., 0., 0, h, h) l in - Logger.verbose fmt "@[%s%s: [" sub msg; - Format.pp_open_vbox fmt (2 + String.length msg + String.length sub); - Logger.verbose fmt - "@\n\ + Logger.start_msg fmt "[Stats] "; + Logger.msg fmt "%s %s:@\n @[[" sub msg; + begin + if len <= 1 then + Logger.msg fmt + "@\n\ +| Time: %fms@\n" + tmin + else + Logger.msg fmt + "@\n\ | Number of runs: %i@\n\ | Average time: %fms@\n\ | Minimum time: %fms@\n\ -| Maximum time: %fms@\n\ -| Memory before: %a@\n\ -| Memory after: %a@\n]@]@]@\n" - len - (ttotal /. (float_of_int len)) - tmin - tmax +| Maximum time: %fms@\n" + len + (ttotal /. (float_of_int len)) + tmin + tmax + + end; + Logger.msg fmt +"| Memory before: %a@\n\ +| Memory after: %a@\n]@]" System.pr_mem_status memo - System.pr_mem_status memn + System.pr_mem_status memn; + Logger.end_msg fmt "\n\n" let time f ?(count=1) ?(msg="") x = @@ -153,7 +139,7 @@ let time f ?(count=1) ?(msg="") x = Queue.clear _t_queue; List.iter (fun msg' -> let sub = - if msg' <> msg then "(sub-timing) " else "" + if msg' <> msg then "+" else "=" in display_result Format.err_formatter msg' sub (get_timing msg')) pr_stack; end;