[Python-Dev] Python Benchmarks

Tim Peters tim.peters at gmail.com
Sat Jun 3 15:43:38 CEST 2006


[Fredrik Lundh]
> .... but it's always the thread that runs when the timer interrupt
> arrives that gets the entire jiffy time.  for example, this script runs
> for ten seconds, usually without using any process time at all:
>
>      import time
>      for i in range(1000):
>          for i in range(1000):
>              i+i+i+i
>          time.sleep(0.005)
>
> while the same program, without the sleep, will run for a second or two,
> most of which is assigned to the process.

Nice example!  On my desktop box (WinXP, 3.4GHz), I had to make it
nastier to see it consume any "time" without the sleep:

import time
for i in range(1000):
    for i in range(10000): # 10x bigger
        i+i+i+i*(i+i+i+i) # more work
    time.sleep(0.005)
raw_input("done")

The raw_input is there so I can see Task Manager's idea of elapsed
"CPU Time" (sum of process "user time" and "kernel time") when it's
done.

Without the sleep, it gets charged 6 CPU seconds.  With the sleep, 0
CPU seconds.

But life would be more boring if people believed you the first time ;-)


More information about the Python-Dev mailing list