src/Pure/ML/ml_statistics_polyml-5.5.0.ML
author wenzelm
Thu, 29 Nov 2012 10:45:25 +0100
changeset 50280 0eb9b5d09f31
parent 50255 d0ec1f0d1d7d
child 50656 561d79d7031f
permissions -rw-r--r--
more uniform ML statistics;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
50255
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
     1
(*  Title:      Pure/ML/ml_statistics_polyml-5.5.0.ML
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
     2
    Author:     Makarius
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
     3
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
     4
ML runtime statistics for Poly/ML 5.5.0.
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
     5
*)
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
     6
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
     7
signature ML_STATISTICS =
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
     8
sig
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
     9
  val get: unit -> Properties.T
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    10
end;
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    11
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    12
structure ML_Statistics: ML_STATISTICS =
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    13
struct
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    14
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    15
fun get () =
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    16
  let
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    17
    val
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    18
     {gcFullGCs,
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    19
      gcPartialGCs,
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    20
      sizeAllocation,
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    21
      sizeAllocationFree,
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    22
      sizeHeap,
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    23
      sizeHeapFreeLastFullGC,
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    24
      sizeHeapFreeLastGC,
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    25
      threadsInML,
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    26
      threadsTotal,
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    27
      threadsWaitCondVar,
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    28
      threadsWaitIO,
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    29
      threadsWaitMutex,
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    30
      threadsWaitSignal,
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    31
      timeGCSystem,
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    32
      timeGCUser,
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    33
      timeNonGCSystem,
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    34
      timeNonGCUser,
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    35
      userCounters = _} = PolyML.Statistics.getLocalStats ()
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    36
  in
50280
0eb9b5d09f31 more uniform ML statistics;
wenzelm
parents: 50255
diff changeset
    37
    [("full_GCs", Markup.print_int gcFullGCs),
50255
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    38
     ("partial_GCs", Markup.print_int gcPartialGCs),
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    39
     ("size_allocation", Markup.print_int sizeAllocation),
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    40
     ("size_allocation_free", Markup.print_int sizeAllocationFree),
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    41
     ("size_heap", Markup.print_int sizeHeap),
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    42
     ("size_heap_free_last_full_GC", Markup.print_int sizeHeapFreeLastFullGC),
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    43
     ("size_heap_free_last_GC", Markup.print_int sizeHeapFreeLastGC),
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    44
     ("threads_in_ML", Markup.print_int threadsInML),
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    45
     ("threads_total", Markup.print_int threadsTotal),
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    46
     ("threads_wait_condvar", Markup.print_int threadsWaitCondVar),
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    47
     ("threads_wait_IO", Markup.print_int threadsWaitIO),
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    48
     ("threads_wait_mutex", Markup.print_int threadsWaitMutex),
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    49
     ("threads_wait_signal", Markup.print_int threadsWaitSignal),
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    50
     ("time_GC_system", signed_string_of_real (Time.toReal timeGCSystem)),
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    51
     ("time_GC_user", signed_string_of_real (Time.toReal timeGCUser)),
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    52
     ("time_non_GC_system", signed_string_of_real (Time.toReal timeNonGCSystem)),
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    53
     ("time_non_GC_user", signed_string_of_real (Time.toReal timeNonGCUser))]
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    54
  end;
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    55
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    56
end;
d0ec1f0d1d7d some support for ML runtime statistics;
wenzelm
parents:
diff changeset
    57