# 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 ConstantDescription
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.

### Related topics

WMI Performance Counter Types