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'