+ MONO_COUNTER_RUNTIME = 1 << 13,
+ MONO_COUNTER_SYSTEM = 1 << 14,
+ MONO_COUNTER_LAST_SECTION,
+
+ /* Unit, bits 24-27 (4 bits) */
+ MONO_COUNTER_UNIT_SHIFT = 24,
+ MONO_COUNTER_UNIT_MASK = 0xFu << MONO_COUNTER_UNIT_SHIFT,
+ MONO_COUNTER_RAW = 0 << 24, /* Raw value */
+ MONO_COUNTER_BYTES = 1 << 24, /* Quantity of bytes. RSS, active heap, etc */
+ MONO_COUNTER_TIME = 2 << 24, /* Time interval in 100ns units. Minor pause, JIT compilation*/
+ MONO_COUNTER_COUNT = 3 << 24, /* Number of things (threads, queued jobs) or Number of events triggered (Major collections, Compiled methods).*/
+ MONO_COUNTER_PERCENTAGE = 4 << 24, /* [0-1] Fraction Percentage of something. Load average. */
+
+ /* Monotonicity, bits 28-31 (4 bits) */
+ MONO_COUNTER_VARIANCE_SHIFT = 28,
+ MONO_COUNTER_VARIANCE_MASK = 0xFu << MONO_COUNTER_VARIANCE_SHIFT,
+ MONO_COUNTER_MONOTONIC = 1 << 28, /* This counter value always increase/decreases over time. Reported by --stat. */
+ MONO_COUNTER_CONSTANT = 1 << 29, /* Fixed value. Used by configuration data. */
+ MONO_COUNTER_VARIABLE = 1 << 30, /* This counter value can be anything on each sampling. Only interesting when sampling. */