Counters
Counters is a Mono API for flexible statistics collection
and is used to track different events inside the JIT.
You would typically register an address with the
mono_counters_register routine and increment the
counters from your application as you go. At the end of the
program you would call mono_counters_dump which will display
all the registered counters.
If you need more complicated counter computation, a
function can be provided instead of an address. In that case
the
MONO_COUNTER_CALLBACK flag must be ored in the
type request.
The types that can be rendered are:
MONO_COUNTER_INT
MONO_COUNTER_UINT
MONO_COUNTER_WORD
MONO_COUNTER_LONG
MONO_COUNTER_ULONG
MONO_COUNTER_DOUBLE
MONO_COUNTER_STRING
To organize the output, you register also a section where
the counter will be displayed, or one of the following values
when you register your counter:
MONO_COUNTER_JIT
MONO_COUNTER_GC
MONO_COUNTER_METADATA
MONO_COUNTER_GENERICS
MONO_COUNTER_SECURITY
mono_counters_dump
Syntax
void
mono_counters_dump (int section_mask, FILE *outfile)
Parameters
section_mask | The sections to dump counters for |
outfile | a FILE to dump the results to |
Description
Displays the counts of all the enabled counters registered.
To filter by variance, you can OR one or more variance with the specific section you want.
Use MONO_COUNTER_SECTION_MASK
to dump all categories of a specific variance.
mono_counters_enable
Syntax
void
mono_counters_enable (int section_mask)
Parameters
sectionmask | a mask listing the sections that will be displayed |
Description
This is used to track which counters will be displayed.