src/Pure/General/timing.scala
changeset 62571 2fd90993a928
parent 57912 dd9550f84106
child 62587 e31bf8ed5397
--- a/src/Pure/General/timing.scala	Wed Mar 09 16:40:39 2016 +0100
+++ b/src/Pure/General/timing.scala	Wed Mar 09 16:42:30 2016 +0100
@@ -8,6 +8,9 @@
 package isabelle
 
 
+import java.util.Locale
+
+
 object Timing
 {
   val zero = Timing(Time.zero, Time.zero, Time.zero)
@@ -35,9 +38,20 @@
 
   def + (t: Timing): Timing = Timing(elapsed + t.elapsed, cpu + t.cpu, gc + t.gc)
 
+  def message_resources: String =
+  {
+    val resources = cpu + gc
+    val t1 = elapsed.seconds
+    val t2 = resources.seconds
+    val factor =
+      if (t1 >= 5.0 && t2 >= 5.0)
+        String.format(Locale.ROOT, ", factor %.2f", new java.lang.Double(t2 / t1))
+      else ""
+    elapsed.message_hms + " elapsed time, " + resources.message_hms + " cpu time" + factor
+  }
+
   def message: String =
     elapsed.message + " elapsed time, " + cpu.message + " cpu time, " + gc.message + " GC time"
 
   override def toString: String = message
 }
-