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.
- Available on Windows only.
- High-resolution Windows timer in Agent log.
- Available on POSIX platforms only.
- __clock_gettime (CLOCK_MONOTONIC where available, otherwise CLOCK_REALTIME).
- High-resolution POSIX timer in Agent log.
- Available on x86 platforms only.
- Useful for VMware guests only.
- Timekeeping in VMware Virtual Machines.
- High-resolution Performance Monitoring Counter in Agent log.
Values for <id>:
- 0x10000: Physical host TSC The physical host TSC may change its counting rate, jump to a different value, or both, when the virtual machine migrates to a different host, or is resumed from suspend or reverted to a snapshot.
- 0x10001: Elapsed real time in ns The elapsed real time counter runs at a constant rate but may jump to a different value when the virtual machine migrates to a different host, or is resumed from suspend or reverted to a snapshot.
- 0x10002: Elapsed apparent time in ns Elapsed real time and elapsed apparent time were introduced in VMware ESX 3.5 and VMware Workstation 6.5. The zero point for the counters is unspecified.
Timers affected by dynamic frequency scaling are not used unless forced. The Agent typically issues warnings in such cases.
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.
See http://msdn.microsoft.com/en-us/library/ms644904.aspx for more information.