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