Agent timers

Timers measure method execution time. Different timers provide different accuracy and granularity, based on the OS and architecture.

If a selected timer is not available on the agent platform, the Agent uses the standard run-time (Low-Res System Clock) timer. If changing the timer type, you must restart the Agent for the change to take effect.

Use the Agents Overview dashlet to see the timer used by a specific Agent. To do this, select the desired Agent in the Agent list. The HiResClock and Timer properties in the Details pane indicate the type of timer for the Agent.

See Set up Agents and Agent Group - Agent Mapping for information on different ways to specify a timer type for an agent.

Timer types


Frequency scaling

Timers affected by dynamic frequency scaling are not used unless forced. The Agent typically issues warnings in such cases.

Multiple CPUs/cores

Several timers may make problems on systems with multiple CPUs and multiple cores per CPU. These include rdtsc() and possibly QueryPerformanceCounter() and JVMTI->GetTime().


On a multiprocessor computer, it should not matter which processor is called. However, you can get different results on different processors due to bugs in the basic input/output system (BIOS) or the hardware abstraction layer (HAL). To specify processor affinity for a thread, use the SetThreadAffinityMask function.

Also, the Performance counter value may unexpectedly leap forward.

See for more information.