Calculations for Raw Counter Data

This section lists the types of performance counters and the calculations that the Performance Monitor uses to convert the raw data to the information you would expect from the counter name. The counter types and calculations are defined in winperf.h. For the calculations, the following key applies:

Symbol Definition
N Numerator
D Denominator
TB Time base (indicates the units of raw data if not used in calculation)
B Base count (number of entries)
N0 Oldest or first sample taken (of the numerator in this case; D0 would be of the denominator)
N1 More recent sample
Nx Most recent sample in calculation array (for average calculation)

PERF_100NSEC_MULTI_TIMER  Timer for when multiple instances are in use, so the result can exceed 100%. The number of instances is in the next counter.

Element Value
Numerator CounterData
Denominator 100NsTime
Time base 100Ns
Calculation (N1-N0)/(D1-D0)
Average function (Nx-N0)/(Dx-D0)

PERF_100NSEC_MULTI_TIMER_INV  The inverse of the timer for multiple instances (when the object is not in use).

Element Value
Numerator CounterData
Denominator 100NsTime
Time base 100Ns
Calculation (B-((N1-N0)/(D1-D0)))
Average function (B-((Nx-N0)/(Dx-D0)))

PERF_100NSEC_TIMER  Timer for when the object is in use.

Element Value
Numerator CounterData
Denominator 100NsTime
Time base 100Ns
Calculation (N1-N0)/(D1-D0)
Average function (Nx-N0)/(Dx-D0)

PERF_100NSEC_TIMER_INV  The inverse of the timer (when the object is not in use).

Element Value
Numerator CounterData
Denominator 100NsTime
Time base 100Ns
Calculation (1-((N1-N0)/(D1-D0)))
Average function (1-((Nx-N0)/(Dx-D0)))

PERF_AVERAGE_BASE  Used as the denominator in the computation of time or count averages.

Element Value
Numerator N/A
Denominator N/A
Time base N/A
Calculation N/A
Average function N/A

PERF_AVERAGE_BULK  A count which usually gives the bytes per operation when divided by the number of operations.

Element Value
Numerator CounterData
Denominator BaseData
Time base N/A
Calculation (N1-N0)/(D1-D0)
Average function (Nx-N0)/(Dx-D0)

PERF_AVERAGE_TIMER  A timer which usually gives time per operation when divided by the number of operations.

Element Value
Numerator CounterData
Denominator BaseData
Time base PerfFreq
Calculation ((N1-N0)/TB)/(D1-D0)
Average function ((Nx-N0)/TB)/(Dx-D0)

PERF_COUNTER_BULK_COUNT  Used to count byte transmission rates.

Element Value
Numerator CounterData
Denominator PerfTime
Time base PerfFreq
Calculation (N1-N0)/((D1-D0)/TB)
Average function (Nx-N0)/((Dx-D0)/TB)

PERF_COUNTER_COUNTER  Rate of counts. The most common counter.

Element Value
Numerator CounterData
Denominator PerfTime
Time base PerfFreq
Calculation (N1-N0)/((D1-D0)/TB)
Average function (Nx-N0)/((Dx-D0)/TB)

PERF_COUNTER_DELTA  Difference between two counters.

Element Value
Numerator CounterData
Denominator N/A
Time base N/A
Calculation (N1-N0)
Average function (Nx-N0)/x

PERF_COUNTER_LARGE_DELTA  Difference between two counters.

Element Value
Numerator CounterData
Denominator N/A
Time base N/A
Calculation (N1-N0)
Average function (Nx-N0)/x

PERF_COUNTER_LARGE_QUEUELEN_TYPE  Average count per time interval.

Element Value
Numerator CounterData
Denominator PerfTime
Time base PerfFreq
Calculation (N1-N0)/(D1-D0)
Average function (Nx-N0)/(Dx-D0)

PERF_COUNTER_LARGE_RAWCOUNT  Instantaneous counter value.

Element Value
Numerator CounterData
Denominator N/A
Time base N/A
Calculation (N0)
Average function SUM(N)/x

PERF_COUNTER_LARGE_RAWCOUNT_HEX  Instantaneous counter value, as a hexadecimal number.

Element Value
Numerator CounterData
Denominator N/A
Time base N/A
Calculation (N0)
Average function SUM(N)/x

PERF_COUNTER_MULTI_BASE  Base for MULTI counters.

Element Value
Numerator N/A
Denominator N/A
Time base N/A
Calculation N/A
Average function N/A

PERF_COUNTER_MULTI_TIMER  Timer for when multiple instances are in use, so the result can exceed 100%. The number of instances is in the next counter.

Element Value
Numerator CounterData
Denominator PerfTime
Time base PerfFreq
Calculation (N1-N0)/(D1-D0)
Average function (Nx-N0)/(Dx-D0)

PERF_COUNTER_MULTI_TIMER_INV  The inverse of the timer for multiple instances (when the object is not in use).

Element Value
Numerator CounterData
Denominator PerfTime
Time base PerfFreq
Calculation (B-((N1-N0)/(D1-D0)))
Average function (B-((Nx-N0)/(Dx-D0)))

PERF_COUNTER_NODATA  There is no data for this counter.

Element Value
Numerator 0
Denominator N/A
Time base N/A
Calculation 0
Average function 0

PERF_COUNTER_QUEUELEN_TYPE  Average count per time interval.

Element Value
Numerator CounterData
Denominator PerfTime
Time base PerfFreq
Calculation (N1-N0)/(D1-D0)
Average function (Nx-N0)/(Dx-D0)

PERF_COUNTER_RAWCOUNT  Instantaneous counter value.

Element Value
Numerator CounterData
Denominator N/A
Time base N/A
Calculation (N0)
Average function SUM(N)/x

PERF_COUNTER_RAWCOUNT_HEX  Instantaneous counter value, as a hexadecimal number.

Element Value
Numerator CounterData
Denominator N/A
Time base N/A
Calculation (N0)
Average function SUM(N)/x

PERF_COUNTER_TEXT  Indicates the data is not a counter, but is Unicode text.

Element Value
Numerator N/A
Denominator N/A
Time base N/A
Calculation N/A
Average function N/A

PERF_COUNTER_TIMER  The most common timer.

Element Value
Numerator CounterData
Denominator PerfTime
Time base PerfFreq
Calculation (N1-N0)/(D1-D0)
Average function (Nx-N0)/(Dx-D0)

PERF_COUNTER_TIMER_INV  The inverse of the timer (when the object is not in use).

Element Value
Numerator CounterData
Denominator PerfTime
Time base PerfFreq
Calculation (1-((N1-N0)/(D1-D0)))
Average function (1-((Nx-N0)/(Dx-D0)))

PERF_ELAPSED_TIME  The data is the start time of the item being measured. For display, subtract the start time from the snapshot time to yield the elapsed time. The PerfTime member of the PERF_OBJECT_TYPE structure contains the sample time. Use the PerfFreq member of the PERF_OBJECT_TYPE structure to convert the time into seconds.

Element Value
Numerator CounterData
Denominator ObjectTime
Time base ObjectFreq
Calculation (D0-N0)/TB
Average function (Dx-N0)/TB

PERF_RAW_BASE  Used as a base. Check that this value is greater than zero before dividing.

Element Value
Numerator N/A
Denominator N/A
Time base N/A
Calculation N/A
Average function N/A

PERF_RAW_FRACTION  Instantaneous value, to be divided by the base.

Element Value
Numerator CounterData
Denominator BaseData
Time base N/A
Calculation (N0/D0)
Average function SUM(N/D)/x

PERF_SAMPLE_BASE  Used as a base. Check that this value is greater than zero before dividing.

Element Value
Numerator N/A
Denominator N/A
Time base N/A
Calculation N/A
Average function N/A

PERF_SAMPLE_COUNTER  A count that is sampled on each sampling interrupt. Must be divided by the base.

Element Value
Numerator CounterData
Denominator PerfTime
Time base PerfFreq
Calculation (N1-N0)/((D1-D0)/TB)
Average function (Nx-N0)/((Dx-D0)/TB)

PERF_SAMPLE_FRACTION  A count that is either 1 or 0 on each sampling interrupt.

Element Value
Numerator CounterData
Denominator BaseData
Time base N/A
Calculation (N1-N0)/(D1-D0)
Average function (Nx-N0)/(Dx-D0)