As anyone can see from cutils sources, windows version of cut*Timer functions use QueryPerformanceCounter/QueryPerformanceFrequency, which, in turn, use RDTSC. The problem is, on CPUs that support dynamic frequency change, results of measurments with RDTSC are unreliable.
So, is it planned to use some other timers, like HPET or ACPI timer (aka PM clock)?
You may ask, why didn’t I write my own timer functions? ) Unfortunately, HPET can be used only starting from Vista; ACPI timer theoretically can be used instead of RDTSC in Windows XP, by downloading a patch from Microsoft and setting /USEPMTIMER in boot.ini, but in my Windows 2003 this trick does not work (patch refuses to install and boot.ini value does not work). There is an intrinsic __readpmc() in MSVC for explicit call to this timer, but it works in kernel mode only…
Could anyone please tell me, how can I profile my application in this case?