gdb output window performance

Jens Dagerbo jens.dagerbo at swipnet.se
Thu Apr 13 01:48:12 UTC 2006


On Wednesday 12 April 2006 15:16, Vladimir Prus wrote:
> On Wednesday 12 April 2006 19:04, Andras Mantia wrote:
> > On Wednesday 12 April 2006 17:54, Vladimir Prus wrote:
> > > The call to 'scrollToBottom' was commented just now, and has no
> > > apparanent effect on performance. The 'm_gdbView' is QTextEdit.
> > > Before I go and write my own GdbLogginWidgetImplementedAsQScrollArea,
> > > maybe somebody knows any possible reason why QTextEdit is that slow?
> >
> > Well, I'm sure QTextEdit was not designed for this purpose ("QTextEdit
> > is an advanced WYSIWYG viewer/editor supporting rich text formatting
> > using HTML-style tags..."), unless you use in LogText mode. If you are
> > already using that mode, I see no other solution, but make a faster
> > logging widget.
>
> Per Jens' suggestion, I've tried using:
>
>     setTextFormat(LogText);
>
> which has no noticable effect whatsoever. Maybe I can try disabling updates
> for the widget, so that it does not repait itself on each gdb command, but
> if that fails, I'll put together a small logging widget using QScrollArea.
> Should not be very hard ;-)
>

I was literary putting on my jacket as I wrote the above suggestion, so I had 
no time to expand on alternatives.. ;)

I've been doing some work trying to optimize the output of a realtime logging 
application based on the Windows RichText Control at work. It's also a pig 
and can be really slow if used incorrectly.

The best solution I found is exactly what Alexander Neundorf suggested 
elsewhere in this thread - buffer the data and push it into the QTextEdit on 
fewer occasions. If it's anything like the Windows control, it's not the 
painting that's slow, it's the append operation. The only solution is to do 
less of them (with more data). Give it a try before making your own 
widget. :)

// jens




More information about the KDevelop-devel mailing list