> > RDTSC is a bad source of information for this kind of thing, as the 
> > CPU frequency might vary.
> One thought that was bothering me was that if the CPU goes 
> idle while waiting for disk I/O, its clock might stop or slow 
> down dramatically.
> If we believed such a counter for EXPLAIN, we'd severely 
> understate the cost of disk I/O.
> I dunno if that is the case on any Windows hardware or not, 
> but none of this thread is making me feel confident that we 
> know what QueryPerformanceCounter does measure.

I'm "reasonaly confident" that QPC will measure actual wallclock time as
passed, using a chip that is external to the CPU. (Don't ask me which
chip :P).

The docs specifically say: "Note that the frequency of the
high-resolution performance counter is not the processor speed." 

It also indicates that it is possible for hardware not to support it, in
which case the frequency will be reported as zero. I don't know any
remotely modern wintel system that doesn't, though - it seems this may
be referring to the old MIPS port of NT that didn't have it.

I also find:
"Depending on the processor and exact version of NT you're using, on an
Intel you get either the Time Stamp Counter, or the 1.1... MHz timer
built into the motherboard."

So I think we're perfectly safe relying on it. And certainly not alone
in doing so :-)


---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
      joining column's datatypes do not match

Reply via email to