[Python-Dev] GIL behaviour under Windows

John Arbash Meinel john.arbash.meinel at gmail.com
Wed Oct 21 19:42:51 CEST 2009


Antoine Pitrou wrote:
> Sturla Molden <sturla <at> molden.no> writes:
>> It does not crash the interpreter, but it seems it can deadlock.
> 
> Kristján sent me a patch which I applied and is supposed to fix this.
> Anyway, thanks for the numbers. The GIL does seem to fare a bit better (zero
> latency with the Pi calculation in the background) than under Linux, although it
> may be caused by the limited resolution of time.time() under Windows.
> 
> Regards
> 
> Antoine.

You can use time.clock() instead to get <15ms resolution. Changing all
instances of 'time.time' to 'time.clock' gives me this result:

(2-core machine, python 2.6.2)

$ py ccbench.py
--- Throughput ---

Pi calculation (Python)

threads=1: 675 iterations/s.
threads=2: 388 ( 57 %)
threads=3: 374 ( 55 %)
threads=4: 445 ( 65 %)

regular expression (C)

threads=1: 588 iterations/s.
threads=2: 519 ( 88 %)
threads=3: 511 ( 86 %)
threads=4: 513 ( 87 %)

bz2 compression (C)

threads=1: 536 iterations/s.
threads=2: 949 ( 176 %)
threads=3: 900 ( 167 %)
threads=4: 927 ( 172 %)

--- Latency ---

Background CPU task: Pi calculation (Python)

CPU threads=0: 24727 ms. (std dev: 0 ms.)
CPU threads=1: 27930 ms. (std dev: 0 ms.)
CPU threads=2: 31029 ms. (std dev: 0 ms.)
CPU threads=3: 34170 ms. (std dev: 0 ms.)
CPU threads=4: 37292 ms. (std dev: 0 ms.)

Background CPU task: regular expression (C)

CPU threads=0: 40454 ms. (std dev: 0 ms.)
CPU threads=1: 43674 ms. (std dev: 21 ms.)
CPU threads=2: 47100 ms. (std dev: 165 ms.)
CPU threads=3: 50441 ms. (std dev: 304 ms.)
CPU threads=4: 53707 ms. (std dev: 377 ms.)

Background CPU task: bz2 compression (C)

CPU threads=0: 56138 ms. (std dev: 0 ms.)
CPU threads=1: 59332 ms. (std dev: 0 ms.)
CPU threads=2: 62436 ms. (std dev: 0 ms.)
CPU threads=3: 66130 ms. (std dev: 0 ms.)
CPU threads=4: 69859 ms. (std dev: 0 ms.)


More information about the Python-Dev mailing list