for loops longer on a P-IV???
Chris
Christopher.Cox at honeywell.com
Wed Jul 31 21:23:51 EDT 2002
I previously posted an oddity with what I thought to be a problem with
the win32api.Sleep() function on a P-IV system. After some more
investigation, it looks like the for loop we use in our function is
causing a significantly larger amount of time to execute on out P-IV
system than on our P-III system. This is our wait function:
def wait(Seconds):
loop = Seconds * 50
for i in range (0,loop):
win32api.Sleep(20)
if win32ui.PumpWaitingMessages(0,-1):
win32api.PostQuitMessage()
raise exceptions.SystemExit
A 10 second wait on our P-IV seems to take 15 seconds as shown by the
following miniscule test:
import time
import win32api
def test(sec):
print time.clock()
wait(10)
print time.clock()
The results were consistently 50% longer than expected. I removed the
if clause and it's statements and found the same result. I then
rewrote the wait function as follows:
def wait(second):
win32api.Sleep(1000 * second)
Running the test again with the updated version of the wait function,
I got expected results of 10 second waits. I haven't tried using a
while loop instead of the for loop yet, so I'm not sure if this
applies to all loops or just the for construct. Am I missing
something blatantly obvious, or is there some known issue with the way
the P-IV optimizes code at runtime?
More information about the Python-list
mailing list