[Python-Dev] Re: [pypy-dev] Slides: how Psyco works

Christian Tismer tismer at stackless.com
Thu Apr 29 11:45:46 EDT 2004


Armin Rigo wrote:

> Hello,
> 
> I have put on-line some slides from the Python UK conference at ACCU 2004,
> explaining how Psyco works.  It is actually a Pygame application...  As far as
> I can tell, it is the first time someone in the room actually understood
> something at the end :-)
> 
>    http://psyco.sourceforge.net/

Hey, *this* is a nice animation, with my beloved Lemmings :-)

> I hope it should help to make Psyco a bit less mysterious, and also explain
> why it is difficult to have a general idea about what kind of speed-up you can
> expect for specific kinds of code: it is, after all, a pretty low-level
> "local" process that Psyco does, and it sometimes pays off and sometimes not.
> It also explains why this process is very much like the usual interpretation
> that CPython does.  If you think about it you might see how useful it would be
> for Psyco to build on top of an interpreter in a better language than C (i.e.
> one that can be analysed, not just blindly run).

Yes, this is very clear.
For PyPy, it will be interesting to see how efficient Psyco's
peephole-like optimization is compared to whole-program analysis.
There are probably programs simple enough to be completely
optimized through by WPA.
On the other hand, the possible optimization paths can grow
to very many, giving a huge code bloat. In that case, Psyco's
approach is probably more efficient, by creating new code
only when it is needed.
In the end, I guess both strategies should be combined to
get some optimum between analysis time, speed and memory
consumption.

Anyway, I can highly recommend to watch this nice movie
from Rigo Productions (C) :-))

ciao - chris
-- 
Christian Tismer             :^)   <mailto:tismer at stackless.com>
Mission Impossible 5oftware  :     Have a break! Take a ride on Python's
Johannes-Niemeyer-Weg 9a     :    *Starship* http://starship.python.net/
14109 Berlin                 :     PGP key -> http://wwwkeys.pgp.net/
work +49 30 89 09 53 34  home +49 30 802 86 56  mobile +49 173 24 18 776
PGP 0x57F3BF04       9064 F4E1 D754 C2FF 1619  305B C09C 5A3B 57F3 BF04
      whom do you want to sponsor today?   http://www.stackless.com/




More information about the Python-Dev mailing list