Hi Aleks, nice to hear from you :-)

Actually, after checking it more, the xml is not actually the slowest part as it seems at first... mainly because it is executed only on breakpoints... The bad part is the way the global tracing function is set, analyzing contexts that it should not even know about (that's the trace_dispatch function)... it almost always return itself to debug on other contexts, when it should return almost always 'None' and just return itself on valid contexts... (you can actually 'feel' that when you put a large program to run... it could take a lot of time just to get at the first breakpoint.)

I think that actually making an asynchronous debbuging, so that the communication would be on a non profiled thread and making the breaks just where needed would do the trick, but I'm unsure of how should this work if the user sets some breakpoint after we returned None in the trace_dispatch... Also, that would probably require heavy changes in the structure being used, so, I want to be sure that this is the right way to do it, before jumping at it... jython is also a concern, since I'm not sure if it works exactly as python on that...

The xml part could also be improved as you said, but I don't think it is the slowest part right now :-)



On 9/27/05, Aleks Totic <a@totic.org> wrote:
Fabio Zadrozny wrote:
> Hi All,
> PyDev - Python IDE (Python Development Enviroment for Eclipse) version
> has been released.
>    * .pyc is removed when the corresponding .py file is removed.
>    * Debugger has been changed so that it becomes faster (still not as
> fast as I would like, but still... faster) -- looking for people with
> expertise on this to help me, as I'm kind of lost on which should be the
> 'recommended' way to speed it more.

Not sure what are you doing with the debugger right now. The
major cause of slowness used to be transfer of variables. This
was particularly painful when a file imported many packages.
Since everything in Python is global, we'd transfer 1000s  of
variables encoded as XML.

This can be speeded up a lot by loading only "local" variables.
Once the breakpoint is hit, use the editor model to figure out
what the local variables are, and transfer only those values



This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
Pydev-code mailing list