[pypy-issue] [issue910] eval(code, globals, locals) slower than cpython

Armin Rigo tracker at bugs.pypy.org
Sun Oct 16 22:56:04 CEST 2011


Armin Rigo <armin.rigo at gmail.com> added the comment:

Closed: the real issue is that it hits the trace limit.  It is (a bit) faster
than CPython with "pypy --jit trace_limit=12000" for example.  All these 'a' are
doing lookups in the locals dictionary followed by guard checks for the type,
which I suppose takes a lot of operations.  (One could improve by converting
StringDicts to CellDicts automatically in exec/eval, maybe.)

So we end up with "trace too long", and all operations are from the same
function --- i.e. the compiled code object --- so that it's not possible to
reduce the length of the trace by disabling some inlining...  which might be
another issue to look at, maybe, although it's unlikely that many functions are
so large in practice.

----------
status: chatting -> invalid

________________________________________
PyPy bug tracker <tracker at bugs.pypy.org>
<https://bugs.pypy.org/issue910>
________________________________________


More information about the pypy-issue mailing list