[Python-Dev] Re: Python 2.1 slower than 2.0

Tim Peters tim.one@home.com
Sat, 27 Jan 2001 15:06:20 -0500


[A.M. Kuchling]
> [CC'ing to python-dev]  Confirmed:
>
> [amk@mira Python-2.0]$ ./python Lib/test/pystone.py
> Pystone(1.1) time for 10000 passes = 3.14
> This machine benchmarks at 3184.71 pystones/second
> [amk@mira Python-2.0]$ python2.1 Lib/test/pystone.py
> Pystone(1.1) time for 10000 passes = 3.81
> This machine benchmarks at 2624.67 pystones/second
>
> The ceval.c changes seem a likely candidate to have caused this.
> Anyone want to run Marc-Andre's microbenchmarks and see how the
> numbers have changed?

Want to, yes, but it looks hopeless on my box:

**** 2.0

C:\Python20>python lib/test/pystone.py
Pystone(1.1) time for 10000 passes = 0.851013
This machine benchmarks at 11750.7 pystones/second

C:\Python20>python lib/test/pystone.py
Pystone(1.1) time for 10000 passes = 1.24279
This machine benchmarks at 8046.41 pystones/second

**** 2.1a1

C:\Python21a1>python lib/test/pystone.py
Pystone(1.1) time for 10000 passes = 0.823313
This machine benchmarks at 12146 pystones/second

C:\Python21a1>python lib/test/pystone.py
Pystone(1.1) time for 10000 passes = 1.27046
This machine benchmarks at 7871.15 pystones/second

**** CVS

C:\Code\python\dist\src\PCbuild>python ..\lib\test\pystone.py
Pystone(1.1) time for 10000 passes = 0.836391
This machine benchmarks at 11956.1 pystones/second

C:\Code\python\dist\src\PCbuild>python ..\lib\test\pystone.py
Pystone(1.1) time for 10000 passes = 1.3055
This machine benchmarks at 7659.9 pystones/second


That's after a reboot:  no matter which Python I use, it gets about 12000 on
the first run with a given python.exe, and about 8000 on the second.  Not
shown is that it *stays* at about 8000 until the next reboot.

So there's a Windows (W98SE) Mystery, but also no evidence that timings have
changed worth spit under the MS compiler.  The eval loop is very touchy, and
I suspect you won't track this down on your box until staring at the code
gcc (I presume you're using gcc) generates.  May be sensitive to which
release of gcc you're using too.

switch-to-windows-and-you'll-have-easier-things-to-worry-about<wink>-ly
    y'rs  - tim