src/Pure/ML/ml_statistics.scala
changeset 77708 f137bf5d3d94
parent 77368 7c57d9586f4c
child 77710 b8b01343e3df
--- a/src/Pure/ML/ml_statistics.scala	Fri Mar 24 18:30:17 2023 +0000
+++ b/src/Pure/ML/ml_statistics.scala	Sun Mar 26 12:41:34 2023 +0200
@@ -30,17 +30,16 @@
   val Heap_Free = new Properties.Long("size_heap_free_last_GC")
   val GC_Percent = new Properties.Int("GC_percent")
 
-  sealed case class Memory_Status(heap_size: Long, heap_free: Long, gc_percent: Int) {
-    def heap_used: Long = (heap_size - heap_free) max 0
-    def heap_used_fraction: Double =
-      if (heap_size == 0) 0.0 else heap_used.toDouble / heap_size
+  sealed case class Memory_Status(heap_size: Space, heap_free: Space, gc_percent: Int) {
+    def heap_used: Space = heap_size.used(heap_free)
+    def heap_used_fraction: Double = heap_size.used_fraction(heap_free)
     def gc_progress: Option[Double] =
       if (1 <= gc_percent && gc_percent <= 100) Some((gc_percent - 1) * 0.01) else None
   }
 
   def memory_status(props: Properties.T): Memory_Status = {
-    val heap_size = Heap_Size.get(props)
-    val heap_free = Heap_Free.get(props)
+    val heap_size = Space.bytes(Heap_Size.get(props))
+    val heap_free = Space.bytes(Heap_Free.get(props))
     val gc_percent = GC_Percent.get(props)
     Memory_Status(heap_size, heap_free, gc_percent)
   }