How to measure elapsed time under Windows?

Albert van der Horst albert at
Mon Feb 22 18:52:48 CET 2010

In article <87404349-5d3a-4396-aeff-60edc14a506a at>,
Paul McGuire  <ptmcg at> wrote:
>On Feb 10, 2:24=A0am, Dennis Lee Bieber <wlfr... at> wrote:
>> On Tue, 9 Feb 2010 21:45:38 +0000 (UTC), Grant Edwards
>> <inva... at invalid.invalid> declaimed the following in
>> gmane.comp.python.general:
>> > Doesn't work. has granularity of
>> > 15-16ms.
>> > Intervals much less that that often come back with a delta of
>> > 0. =A0A delay of 20ms produces a delta of either 15-16ms or
>> > 31-32ms
>> =A0 =A0 =A0 =A0 WinXP uses an ~15ms time quantum for task switching. Whic=
>h defines
>> the step rate of the wall clock output...
>> --
>> =A0 =A0 =A0 =A0 Wulfraed =A0 =A0 =A0 =A0 Dennis Lee Bieber =A0 =A0 =A0 =
>=A0 =A0 =A0 =A0 KD6MOG
>> =A0 =A0 =A0 =A0 wlfr... at =A0 =A0 HTTP://wlfraed.home.netcom.=
>Gabriel Genellina reports that time.clock() uses Windows'
>QueryPerformanceCounter() API, which has much higher resolution than
>the task switcher's 15ms.  QueryPerformanceCounter's resolution is
>hardware-dependent; using the Win API, and a little test program, I
>get this value on my machine:
>Frequency is 3579545 ticks/sec
>Resolution is 0.279365114840015 microsecond/tick

In Forth we add a small machine code routine that executes the
RDTSC instruction. (I used that to play music on a couple of
mechanical instruments in real time.)
It just counts the (3 Ghz) clock cycles in a 64 bit timer.
Subtract two samples and you're done.

Is there a mechanism in Python to do something similar,
embedded assembler or something?

(This is not a general solution, but at least it would work on
Windows, that is i86 only.)

>-- Paul

Economic growth -- being exponential -- ultimately falters.
albert at spe&ar& &=n

More information about the Python-list mailing list