Psyco alternative

sturlamolden sturlamolden at yahoo.no
Thu Apr 24 20:19:44 EDT 2008


On Mar 27, 5:01 pm, king kikapu <aboudou... at panafonet.gr> wrote:

> Hmmm...thanks but i think Pyrex-like solution is not the ideal one.
> Coming from C# and having 8 years of expertise on it, i have gain a
> very positive thinking about jit compilers and i think that psyco (ok,
> a just-in-time specializer) is a more easy (and more correct) way to
> go that mixing 2 languages.


The problem with Python, when we are talking out jit compilation, is
it's reliance on attribute lookups in hash tables. Java and C# do not
have dynamically bound attributes, and can implement classes using
vtables. Attributes cannot be rebound in Java or C#. A Python jit
cannot even do elementary optimizations like keeping an integer in a
register. This makes it a lot easier to make an efficient jit compiler
for Java or C#. Python is more like Common Lisp. There is no efficient
jit for Lisp. But there are very fast implementations that depend on
optional static typing (e.g. SBCL and CMUCL). That could be an option
of Python as well, by including something like Cython and a C
compiler. Any module that has a cdef is passed to Cython and CC
instead of the usual bytecode compiler and interpreter.





More information about the Python-list mailing list