I would like to use the High Performance Event Timer (HPET) for an profiling tool to take very high precision measurements, quickly. timeGetTime does not provide sufficient resolution at 1ms, and QueryPerformanceCounter is much slower per read than I'd like. I came across the HPET while researching the problem, but I can't see any samples of how to actually get at it.
So can I use it directly (assembly is fine), or do I have to rely on the multimedia/high performance timing tools already built into the Win32 API?
QueryPerformanceCounter
are not safe to use when the system has a non-constant base frequency (overclocking within the system). Windows fails to adjust the QPC frequency in those cases which leads to skewed timings. In those cases, HPET and ACPI remain the only alternatives for a reliable timer. Therefore, this question remains open and unanswered. – Whistling