src/Pure/ML/ml_statistics.ML
changeset 72041 7b112eedc859
parent 72040 bc85d93aad23
child 72111 b9ded33bd58c
equal deleted inserted replaced
72040:bc85d93aad23 72041:7b112eedc859
    48   PolyML.Statistics.setUserCounter (7, workers_waiting));
    48   PolyML.Statistics.setUserCounter (7, workers_waiting));
    49 
    49 
    50 
    50 
    51 (* get properties *)
    51 (* get properties *)
    52 
    52 
       
    53 local
       
    54 
    53 fun make_properties
    55 fun make_properties
    54    {gcFullGCs,
    56    {gcFullGCs,
    55     gcPartialGCs,
    57     gcPartialGCs,
    56     gcSharePasses,
    58     gcSharePasses,
    57     sizeAllocation,
    59     sizeAllocation,
    71     timeGCSystem,
    73     timeGCSystem,
    72     timeGCUser,
    74     timeGCUser,
    73     timeNonGCReal,
    75     timeNonGCReal,
    74     timeNonGCSystem,
    76     timeNonGCSystem,
    75     timeNonGCUser,
    77     timeNonGCUser,
    76     userCounters} =
    78     userCounters, ...} =
    77   let
    79   let
    78     val tasks_ready = Vector.sub (userCounters, 0);
    80     val tasks_ready = Vector.sub (userCounters, 0);
    79     val tasks_pending = Vector.sub (userCounters, 1);
    81     val tasks_pending = Vector.sub (userCounters, 1);
    80     val tasks_running = Vector.sub (userCounters, 2);
    82     val tasks_running = Vector.sub (userCounters, 2);
    81     val tasks_passive = Vector.sub (userCounters, 3);
    83     val tasks_passive = Vector.sub (userCounters, 3);
   115      ("time_elapsed_GC", print_real (Time.toReal timeGCReal)),
   117      ("time_elapsed_GC", print_real (Time.toReal timeGCReal)),
   116      ("time_CPU", print_real (Time.toReal timeNonGCSystem + Time.toReal timeNonGCUser)),
   118      ("time_CPU", print_real (Time.toReal timeNonGCSystem + Time.toReal timeNonGCUser)),
   117      ("time_GC", print_real (Time.toReal timeGCSystem + Time.toReal timeGCUser))]
   119      ("time_GC", print_real (Time.toReal timeGCSystem + Time.toReal timeGCUser))]
   118   end;
   120   end;
   119 
   121 
       
   122 in
       
   123 
   120 fun get () =
   124 fun get () =
   121   make_properties (PolyML.Statistics.getLocalStats ());
   125   make_properties (PolyML.Statistics.getLocalStats ());
   122 
   126 
   123 fun get_external pid =
   127 fun get_external pid =
   124   make_properties (PolyML.Statistics.getRemoteStats pid);
   128   make_properties (PolyML.Statistics.getRemoteStats pid);
       
   129 
       
   130 end;
   125 
   131 
   126 
   132 
   127 (* monitor process *)
   133 (* monitor process *)
   128 
   134 
   129 fun monitor pid delay =
   135 fun monitor pid delay =