[pypy-dev] sys._getframe(1).f_locals is very slow on PyPy 1.8

Maciej Fijalkowski fijall at gmail.com
Sun May 27 12:45:35 CEST 2012


On Sun, May 27, 2012 at 12:30 PM, Makoto Kuwata <kwa at kuwata-lab.com> wrote:

> Hi Ronny,
>
> Thank you for your reply.
> You mean that sys._getframe() will remain slow on PyPy.
> I'll try other way (instead of sys._getframe()) to make Tenjin faster on
> PyPy.
>

Hi Makoto.

sys._getframe(1).f_locals will stay slow. The reason for this is that you
have to create all the locals and put them in a dictionary (they normally
don't even exist on the heap). Because of that we decided the JIT should
simply bail out and give up trying to optimize this particular code. Note
that as documented on the python website, this functionality is mostly for
implementing debuggers and such (where speed does not matter), do you
*really* need your callers locals? Sounds like a very deep magic to me, I
can point you to this presentation [1] as to why it might be a bad idea.

[1].. http://www.youtube.com/watch?v=8e0l_Dt28MQ

Cheers,
fijal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pypy-dev/attachments/20120527/ec4ad815/attachment.html>


More information about the pypy-dev mailing list