On Mon, May 22, 2006 at 08:12:31PM +0200, Enrico Forestieri wrote:
> > Basically everything before 4.1.0 has been unusable speed-wise for me.
> > 4.1.0+ is still much worse than 3.x but came into the 'barely usable'
> > region.
> 
> Is this with Qt/X11?

There are some general coding practices that makes Qt slow.

For instance, everything is pimpled, i.e. one extra indirection no
matter what you do. The Qt containers are 'shared', making a simple copy
fast, but costing performance everywhere else.  They use things like
'for (int i = 0; i < foo.size(); ++i)' all over the place. Signal/slot
connection build up farly complex data structures instead of 'direct'
access as in boost::signals. [I guess I can go on for a while...]

Than there are platform specific issues.

On Windows, they only use a homegrown 'raster painter'. No hardware
accellaration at all anymore. OTOH Some 'native' X11 functions like
XDrawSegments are not available, so on has to work around using more
complex functions.  Changing colors when drawing is _very_ expensive.

Things have a tendency to improve, but it is far from good. I wouldn't
be surprised if the whole of Qt could be sped up by a factor of five if
people actually tried.

> What really puzzles me is that on Windows Qt3/X11 outperforms Qt/Win.

> Or perhaps I should say that LyX 1.4.x using the Qt3/X11 frontend is
> noticeably faster than LyX 1.4.x using the native Qt3 frontend, as I
> don't seem to remember such a speed advantage with LyX 1.3.x.

Qt3 and Qt4/X11 is possibly hardware accellerated whereas Qt4/Win is
not. So this is not completely surprising.

Motif/Exceed/WinXP is faster than Qt4/WinXP. And this includes the whole
network layer in the X11 version...

Andre'

Reply via email to