ANTS Performance Profiler 9

Problems synchronizing results

When using ANTS Performance Profiler, you may find that the results shown in the profiler's timeline do not match the results in the call tree. This can be caused by one of two problems:

SpeedStep

Some cheaper motherboards (particularly laptop motherboards) use a technology called SpeedStep to change the CPU's clock speed dynamically, saving power and reducing heat. Leaving this technology enabled may cause the profiler's timeline to lose synchronization if the process being profiled is idle for long periods of time. Using SpeedStep also means that ANTS Performance Profiler cannot accurately estimate the length of time it takes to run a process until profiling is complete. For this reason, selecting a region on the timeline may not give the desired results, especially if you are still profiling the application.

QueryPerformanceCounter

The alternative reason may be caused by the fact that ANTS Performance Profiler uses the QueryPerformanceCounter function in Windows to obtain timing information. Processors with AMD Cool'n'Quiet technology, and some Intel processors, can cause the QueryPerformanceCounter function to give inaccurate results to ANTS Performance Profiler.

In this case, the solution is to use the /USEPMTIMER flag in boot.ini to force QueryPerformanceCounter to use the Power Management timer instead of the Time Stamp Counter (TSC) timer. This solution will not work in Windows Vista or later, however, because the flag was removed in these editions.

Sorting methods by time taken can change their order

When you sort methods by the time taken to execute them, and you change the units for displaying time from milliseconds to CPU Ticks, for example, you may find that the order changes. This is because, if the CPU is running slowly, a small number of ticks can equal a large amount of real time, which can alter the order in which the methods are displayed.

In most cases the CPU time is a better reflection of the effort required to run the method, and so this tends to be a more useful unit, if you are searching for performance issues.


Didn't find what you were looking for?