GetTickCount vs. clock for msec resolution
Ondrej Krajicek
xkrajic at ics.muni.cz
Fri Apr 20 02:03:53 EDT 2001
Hello,
the default behaviour (at least on my W2K box) of system time
is that it gets updated every 100 msecs by 100 msecs
(the system may use system time adjustment
to update system time, but it is free to use
another techniques).
For more info see GetSystemTimeAdjustment
in Win32 API Help (such as Platform SDK documentation).
Those folks should have called GetSystemTimeAdjustment
also or (and) use high resolution timer
(QueryPerformanceFrequency, QueryPerformanceCounter).
At least, things are not that easy
and transparent as on POSIX box, are they ?
Ondrej Krajicek
PS: Here are the results of similar program
(written in Delphi) from by box:
System Time Adjustment:
time adjustment (nsec) = 100144
time increment (nsec) = 100144
Tick Count:
start tick count = 2117384
sleep 100 msec
stop tick count = 2117484
delta = 100
---------------------------------------------------------------------
Ondrej [Krajicek at ics.muni.cz] OK-) fi: xkrajic at fi.muni.cz
.Omnia ad maiorem Informaticae gloriam
-->>> The Nexus Framework <<<-- sourceforge.net/projects/nexusproject
.Of course we can, moreover we must, it is our holiest duty
---------------------------------------------------------------------
Les Schaffer wrote:
>
> i am talking to some hardware, needing to resolve 10's-100's of msec
> of time. So I started playing around with the clock and GetTickCount
> functions under win32 to check for finer time resolution.
>
> See code below. timimg results for win2k at:
>
> http://folks.astrian.net/godzilla/ticks.html
>
> GetTickCount has some funniness in its behavior.
>
> i'm good and stickin with clock for now. But I am curious to hear
> other people's observations about msec time resolution or possibly
> even smaller, particularly on winXX and linux.
>
> les 'time-has-come-tudayyy' schaffer
>
> =========================
>
> from time import clock, sleep
> from win32api import GetTickCount
>
> def _yawn( sec ):
> now = clock()
> while (clock() - now) < sec: pass
>
>
> div = '\n========\n'
> def testTick( sleepyTimeTime ):
> print div, 'SleepyTimeTime = ', sleepyTimeTime*1000, div,
> for i in (0,1,2):
> x = clock()
> _yawn(sleepyTimeTime)
> y = clock()
> print 'delta(clock) = ', (y-x)*1000
> x = GetTickCount()
> _yawn(sleepyTimeTime)
> y = GetTickCount()
> print 'delta(GetTickCount) = ', y - x
>
> print div
>
> testTick(0.0001)
> testTick(0.001)
> testTick(0.01)
> testTick(0.1)
> testTick(1)
--
More information about the Python-list
mailing list