Maciej Fijalkowski, 05.07.2012 14:50: > On Thu, Jul 5, 2012 at 2:35 PM, Stefan Behnel wrote: >> Maciej Fijalkowski, 05.07.2012 11:01: >>> On Thu, Jul 5, 2012 at 10:26 AM, Amaury Forgeot d'Arc wrote: >>>> 2012/7/5 Stefan Behnel >>>>> Back to that question then: >>>>> >>>>>> Is there a way to get readable debugging symbols in a translated PyPy >>>>>> that would tell me what is being executed? >>>> >>>> I fear that pypy standard distribution calls "strip" on the resulting >>>> binary. >>>> You could translate pypy yourself, I'm quite sure it contains debug info >>>> already and it's quite easy to call "make debug" anyway. >>> >>> Default build (not the distribution or nightly, you have to trasnlate >>> yourself), contains debug info. >> >> Ah, yes. Given a suitably large machine and enough time to do other stuff, >> that did the trick for me. Here's the result: >> >> http://cython.org/callgrind-pypy-nbody.png >> >> As you can see, make_ref() and Py_DecRef() combined account for almost 80% >> of the runtime. So the expected gain from optimising the PyObject handling >> is *huge*. >> >> The first thing that pops up from the graph is the different calls through >> generic_cpy_call(). That looks way to generic for something as performance >> critical as Py_DecRef(). >> >> Also, what's that recursive "stackwalk()" thing doing? > > Haha :) > > This is related to garbage collection - it scans the stack for GC pointers > to save them I think. We might think that it's a bit too much to do it for > every single call there.
So, what's the plan of doing something about it? Stefan _______________________________________________ pypy-dev mailing list pypy-dev@python.org http://mail.python.org/mailman/listinfo/pypy-dev