]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/helena/src/lib/time.ml
compile-time feature PROFV to profile validation without sort inclusion
[helm.git] / helm / software / helena / src / lib / time.ml
index 2ca44689fbdbc91a46f58ae83960e75bd5b345ae..a9e542664f6f79134a2ae233b5bc6ca70087029b 100644 (file)
@@ -15,15 +15,11 @@ module L = Log
 
 let level = 1 
 
-let utime_stamp =
-   let old = ref 0.0 in
-   fun msg -> 
-      let times = Unix.times () in
-      let stamp = times.Unix.tms_utime in
-      let lap = stamp -. !old in
-      let str = KP.sprintf "USR TIME STAMP (%s): %f (%f)" msg stamp lap in
-      L.warn level str;
-      old := stamp
+let old = [|0.0; 0.0|]
+
+let stamp_ix = 0
+
+let lap_ix = 1
 
 let gmtime msg =
    let gmt = Unix.gmtime (Unix.time ()) in
@@ -34,4 +30,26 @@ let gmtime msg =
    let m = gmt.Unix.tm_min in
    let s = gmt.Unix.tm_sec in
    let str = KP.sprintf "UTC TIME STAMP (%s): %u/%u/%u %u:%u:%u" msg yy mm dd h m s in
+   L.warn level str
+
+let utime_stamp msg = 
+   let times = Unix.times () in
+   let stamp = times.Unix.tms_utime in
+   let lap = stamp -. old.(stamp_ix) in
+   let str = KP.sprintf "USR TIME STAMP (%s): %f (%f)" msg stamp lap in
    L.warn level str;
+   old.(stamp_ix) <- stamp
+
+IFDEF PROFV THEN
+
+let utime_lap msg = 
+   let times = Unix.times () in
+   let stamp = times.Unix.tms_utime in
+   if msg <> "" then begin
+      let lap = stamp -. old.(lap_ix) in
+      let str = KP.sprintf "USR TIME LAP (%s): %f" msg lap in
+      L.warn level str
+   end;
+   old.(lap_ix) <- stamp
+
+END