Add new counter type for time intervals.
authorRodrigo Kumpera <kumpera@gmail.com>
Thu, 2 Feb 2012 19:09:29 +0000 (17:09 -0200)
committerRodrigo Kumpera <kumpera@gmail.com>
Thu, 2 Feb 2012 19:09:29 +0000 (17:09 -0200)
mono/utils/mono-counters.c
mono/utils/mono-counters.h

index dfa511a0e080d6eb4b2a37c9c0b5b30c74c3da06..e55114beee80b12b5e29c90b0a3c28b68d93bfc6 100644 (file)
@@ -144,6 +144,13 @@ dump_counter (MonoCounter *counter, FILE *outfile) {
                      str = *(char**)counter->addr;
              fprintf (outfile, ENTRY_FMT "%s\n", counter->name, str);
              break;
+       case MONO_COUNTER_TIME_INTERVAL:
+           if (counter->type & MONO_COUNTER_CALLBACK)
+                     int64val = ((LongFunc)counter->addr) ();
+           else
+                     int64val = *(gint64*)counter->addr;
+           fprintf (outfile, ENTRY_FMT "%.2f ms\n", counter->name, (double)int64val / 1000.0);
+           break;
        }
 }
 
index f7d8ea1d4bfbff28fd47b7dc4969a61eb8325fa3..07aeb7902e3e9e714a5977035705f6216340f103 100644 (file)
@@ -12,6 +12,7 @@ enum {
        MONO_COUNTER_ULONG,   /* 64 bit uint */
        MONO_COUNTER_DOUBLE,
        MONO_COUNTER_STRING, /* char* */
+       MONO_COUNTER_TIME_INTERVAL, /* 64 bits signed int holding usecs. */
        MONO_COUNTER_TYPE_MASK = 0xf,
        MONO_COUNTER_CALLBACK = 128, /* ORed with the other values */
        MONO_COUNTER_SECTION_MASK = 0xffffff00,