# Timer Algorithm Counter Types

Timer algorithm counter types are based on the amount of increased use of the performance object over a sample period. The counter data is an increasing quantum measure of the total activity for an object up to the time that the sample takes place. The difference between the two samples indicates the total time that the object is active during the sample time period.

Dividing by the sample period results in a proportion of time that the object is active during a time period. Dividing by the number of internal polling interrupts determines the average use between polling samples.

For example, the AvgDiskSecPerRead property in the Win32_PerfRawData_PerfDisk_PhysicalDisk class uses the PERF_AVERAGE_TIMER countertype. It calculates the average time in seconds of a read of data from the disk, and requires the base property AvgDiskSecPerRead_Base. Unlike PERF_COUNTER_TIMER, the average timer base represents an accumulating number of operations, and the counter data is a running time value, which means that when divided by the time base, it yields the total time of all operations in seconds.

Counter Type Constant Description
PERF_COUNTER_TIMER
Decimal 541132032
Average time that a component is active as a percentage of the total sample time.
PERF_COUNTER_TIMER_INV
Decimal 557909248
Average percentage of time observed during sample interval that the object is not active. This counter type is the same as PERF_100NSEC_TIMER_INV except that it measures time in units of ticks of the system performance timer rather than in 100ns units.
PERF_AVERAGE_TIMER
Decimal 805438464
Average time to complete a process or operation. This counter type displays a ratio of the total elapsed time of the sample interval to the number of processes or operations completed during that time.
This counter type requires a base property with PERF_AVERAGE_BASE as the counter type.
PERF_100NSEC_TIMER
Decimal 542180608
Active time of one component as a percentage of the total elapsed time in units of 100ns of the sample interval.
PERF_100NSEC_TIMER_INV
Decimal 558957824
Percentage of time the object was not in use. This counter type is the same as PERF_COUNTER_TIMER_INV except that it measures time in 100ns units rather than in system performance timer ticks.
PERF_COUNTER_MULTI_TIMER
Decimal 574686464
Active time of one or more components as a percentage of the total time of the sample interval. This counter type differs from PERF_100NSEC_MULTI_TIMER in that it measures time in units of ticks of the system performance timer, rather than in 100ns units.
This counter type requires a base property with the PERF_COUNTER_MULTI_BASE counter type.
PERF_COUNTER_MULTI_TIMER_INV
Decimal 591463680
Inactive time of one or more components as a percentage of the total time of the sample interval. This counter type differs from PERF_100NSEC_MULTI_TIMER_INV in that it measures time in units of ticks of the system performance timer, rather than in 100ns units.
This counter type requires a base property with the PERF_COUNTER_MULTI_BASE counter type.
PERF_100NSEC_MULTI_TIMER
Decimal 575735040
This counter type shows the active time of one or more components as a percentage of the total time (100ns units) of the sample interval.
This counter type requires a base property with the PERF_COUNTER_MULTI_BASE counter type.
PERF_100NSEC_MULTI_TIMER_INV
Decimal 592512256
Inactive time of one or more components as a percentage of the total time of the sample interval. Counters of this type measure time in 100ns units.
This counter type requires a base property with the PERF_COUNTER_MULTI_BASE counter type.
PERF_OBJ_TIME_TIMER
Decimal 543229184
A 64-bit timer in object-specific units.

WMI Performance Counter Types