Platform SDK: Performance Monitoring

Performance Counter Bases

Some performance data types rely on an accompanying counter base used as a denominator in the calculations. The counter base is stored in a performance counter that immediately follows the subject performance counter with an index that is one greater than the index of the subject performance counter. For example, if the index of a counter of type PERF_RAW_FRACTION is 2018, the base value will be in a counter of type PERF_RAW_BASE at index 2019.

The following table lists the performance data types for each base type.

Base Type and Definition Corresponding Counter Types
PERF_AVERAGE_BASE

Stores the denominator for calculating a counter to present "time per operation" or "count per operation".

PERF_AVERAGE_BULK
PERF_AVERAGE_TIMER
PERF_COUNTER_MULTI_BASE

When taking timings of multiple items, this base indicates the number of items sampled. It is used as the denominator in calculations to get an average from the items sampled.

PERF_100NSEC_MULTI_TIMER
PERF_100NSEC_MULTI_TIMER_INV

PERF_COUNTER_MULTI_TIMER
PERF_COUNTER_MULTI_TIMER_INV

PERF_RAW_BASE

Stores the denominator of a counter that presents a general arithmetic fraction.

PERF_RAW_FRACTION
PERF_SAMPLE_BASE

Stores the number of sampling interrupts taken and is used as a denominator in the sampling fraction. The sampling fraction is the number of samples that were 1 (or TRUE) for a sample interrupt.

PERF_SAMPLE_FRACTION