Merge branch 'handle-stdout'
[SXSI/xpathcomp.git] / src / utils.ml
index 23f3e91..7e3bb4b 100644 (file)
@@ -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    @[<v 0>[" 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;