Testing the new version of Psyco

Baz Walter bazwal at googlemail.com
Wed Apr 8 15:46:20 EDT 2009


hello

i recently tried out this new version of psyco...

http://www.voidspace.org.uk/python/weblog/arch_d7_2009_03_14.shtml#e1063

...because of the new support for generators. the above link says "To 
use and test generators, create preferences.py, following the 
instructions in setup.py" - except there's nothing obvious in setup.py 
that refers to generators.

anyway, i created a preferences.py file (with PSYCO_DEBUG = 1) and ran 
psycobench against python-2.5/psyco-1.6 and python-2.6/psyco-2.0 with 
the following results (output has been cropped slightly):

# start output

[benchmark]$ python2.5 psycobench.py -m time_generators time_anyall
Running new timings with original psyco

send call loop 1000         plain: 3.30  psyco: 3.29  ratio: 1.00
send and loop 1000          plain: 3.28  psyco: 3.27  ratio: 1.00
send just many times        plain: 1.28  psyco: 0.56  ratio: 2.29 *
iterate just many times     plain: 0.67  psyco: 0.57  ratio: 1.19 *
call next just many times   plain: 0.85  psyco: 0.63  ratio: 1.35 *
all_bool_genexp             plain: 2.03  psyco: 2.31  ratio: 0.88
all_bool_listcomp           plain: 2.94  psyco: 1.01  ratio: 2.91
all_genexp                  plain: 1.71  psyco: 1.97  ratio: 0.87
all_listcomp                plain: 2.70  psyco: 0.73  ratio: 3.71
all_loop                    plain: 1.09  psyco: 0.08  ratio: 13.15
any_bool_genexp             plain: 2.03  psyco: 2.45  ratio: 0.83
any_bool_listcomp           plain: 2.89  psyco: 0.97  ratio: 2.99
any_genexp                  plain: 1.74  psyco: 1.84  ratio: 0.95
any_listcomp                plain: 2.65  psyco: 0.72  ratio: 3.69
any_loop                    plain: 1.08  psyco: 0.08  ratio: 13.10

[benchmark]$ python2.6 psycobench.py -m time_generators time_anyall
Running new timings with python2.6/site-packages/psyco/_psyco.so

send call loop 1000         plain: 2.85  psyco: 0.04  ratio: 67.90
send and loop 1000          plain: 2.85  psyco: 0.04  ratio: 65.00
send just many times        plain: 1.17  psyco: 0.87  ratio: 1.35
iterate just many times     plain: 0.64  psyco: 0.86  ratio: 0.74
call next just many times   plain: 0.77  psyco: 0.87  ratio: 0.89
all_bool_genexp             plain: 1.87  psyco: 1.98  ratio: 0.95
all_bool_listcomp           plain: 2.54  psyco: 0.66  ratio: 3.84
all_genexp                  plain: 1.69  psyco: 1.77  ratio: 0.95
all_listcomp                plain: 2.38  psyco: 0.52  ratio: 4.55
all_loop                    plain: 1.07  psyco: 0.08  ratio: 14.24
any_bool_genexp             plain: 1.87  psyco: 1.99  ratio: 0.94
any_bool_listcomp           plain: 2.57  psyco: 0.68  ratio: 3.76
any_genexp                  plain: 1.74  psyco: 1.82  ratio: 0.95
any_listcomp                plain: 2.47  psyco: 0.53  ratio: 4.66
any_loop                    plain: 1.07  psyco: 0.07  ratio: 14.65

# end output

with the obvious exception of the the first two tests for psyco v2, the 
results (for generators) seem a little underwhelming. in fact, psyco v1 
does significantly better on three of the tests (marked with an 
asterisk) and for the others there's not much difference.

this makes me wonder whether i enabled generators properly in psyco v2 
when i compiled it. has anybody else tried out this new version of psyco 
and got better overall results for generators? also, those first two 
results for v2 look really odd - what could explain the huge difference 
relative to the other generator tests for v2?

(p.s. i re-ran the tests and got very similar results)

--
Baz Walter




More information about the Python-list mailing list