added "tasks_proof" statistics, via slighly odd global reference Future.forked_proofs (NB: Future.report_status is intertwined with scheduler thread);
authorwenzelm
Fri, 18 Jan 2013 16:20:09 +0100
changeset 50974 55f8bd61b029
parent 50967 00d87ade2294
child 50975 73ec6ad6700e
added "tasks_proof" statistics, via slighly odd global reference Future.forked_proofs (NB: Future.report_status is intertwined with scheduler thread);
src/Pure/Concurrent/future.ML
src/Pure/ML/ml_statistics.scala
src/Pure/goal.ML
--- a/src/Pure/Concurrent/future.ML	Fri Jan 18 00:18:11 2013 +0100
+++ b/src/Pure/Concurrent/future.ML	Fri Jan 18 16:20:09 2013 +0100
@@ -52,6 +52,7 @@
   val peek: 'a future -> 'a Exn.result option
   val is_finished: 'a future -> bool
   val ML_statistics: bool Unsynchronized.ref
+  val forked_proofs: int Unsynchronized.ref
   val interruptible_task: ('a -> 'b) -> 'a -> 'b
   val cancel_group: group -> unit
   val cancel: 'a future -> unit
@@ -187,6 +188,7 @@
 (* status *)
 
 val ML_statistics = Unsynchronized.ref false;
+val forked_proofs = Unsynchronized.ref 0;
 
 fun report_status () = (*requires SYNCHRONIZED*)
   if ! ML_statistics then
@@ -197,6 +199,7 @@
       val waiting = count_workers Waiting;
       val stats =
        [("now", signed_string_of_real (Time.toReal (Time.now ()))),
+        ("tasks_proof", Markup.print_int (! forked_proofs)),
         ("tasks_ready", Markup.print_int ready),
         ("tasks_pending", Markup.print_int pending),
         ("tasks_running", Markup.print_int running),
--- a/src/Pure/ML/ml_statistics.scala	Fri Jan 18 00:18:11 2013 +0100
+++ b/src/Pure/ML/ml_statistics.scala	Fri Jan 18 16:20:09 2013 +0100
@@ -43,7 +43,8 @@
     ("Time", List("time_GC_system", "time_GC_user", "time_non_GC_system", "time_non_GC_user"))
 
   val tasks_fields =
-    ("Future tasks", List("tasks_ready", "tasks_pending", "tasks_running", "tasks_passive"))
+    ("Future tasks",
+      List("tasks_proof", "tasks_ready", "tasks_pending", "tasks_running", "tasks_passive"))
 
   val workers_fields =
     ("Worker threads", List("workers_total", "workers_active", "workers_waiting"))
--- a/src/Pure/goal.ML	Fri Jan 18 00:18:11 2013 +0100
+++ b/src/Pure/goal.ML	Fri Jan 18 16:20:09 2013 +0100
@@ -116,9 +116,7 @@
   Synchronized.change forked_proofs (fn (m, groups, tab) =>
     let
       val n = m + i;
-      val _ =
-        Multithreading.tracing 2 (fn () =>
-          ("PROOFS " ^ Time.toString (Time.now ()) ^ ": " ^ string_of_int n));
+      val _ = Future.forked_proofs := n;
     in (n, groups, tab) end);
 
 fun register_forked id future =
@@ -176,7 +174,7 @@
 
 fun reset_futures () =
   Synchronized.change_result forked_proofs (fn (m, groups, tab) =>
-    (groups, (0, [], Inttab.empty)));
+    (Future.forked_proofs := 0; (groups, (0, [], Inttab.empty))));
 
 end;