Peter Kümmel wrote:
Here numbers from Windows/Linux,
scrolling the Guide, in sec:
Qt4.1.3, release,
Linux no anti-al.: 19
Linux with anti-al.: 25
Windows 2k : 30
So Linux is faster on your machine than windows! That's a surprise since
many complained that it was damn slow on linux. Helge Hafting, you
were the more vocal among them ;-), could you try again?
LyX 1.3.6, Qt 3.3.4
Linux no anti-al.: 6-7
Linux with anti-al.: 6-7
Is 1.5 so slow only because of Qt
or are there also changes of LyX
responsible for?
The more I think about it the more I reckon Qt painting speed is not the
issue. This is comforted by these numbers:
> -Modules, 42.530127
> -QtGui4.dll (SymExport), 18.157461
> QPainter::drawTextItem, 3.968417
> QPainter::drawPixmap, 1.599013
Where are the remaining 12 or 13 seconds?
I think there might be something about the frequency of the paintEvent.
Qt4 adjust the number of paintEvent per second depending on the need but
there's a maximum update rate.
Another piste is the automatic double buffering that Qt4 does. The doc
says that it can be disabled on X11:
Note: Under X11 it is possible to toggle the global double buffering by
calling qt_x11_set_global_double_buffer(). Example usage:
...
extern void qt_x11_set_global_double_buffer(bool);
qt_x11_set_global_double_buffer(false);
...
Could you try that on linux?
Looking at the profiling times I think
by a better buffering QPainter, QBrush,
and QPen we can get a a bit without to
much changes:
I sent a patch that does just that but the result was not that good.
Maybe because it was not complete: it did not cache the QPainter with
fonts change and I suspect that that is the heaviest one. I'll send it
again sometimes.
QPainter::QPainter, 0.828970
QBrush::init, 0.537057
QBrush::cleanUp, 0.520920
QPainter::~QPainter, 0.421153
QPen::operator=, 0.221603
QPen::QPen, 0.200135
Maybe someone has an idea when looking
at the Lyx functions (do we really
need so much libintl_dcigettext calls?)
I don't know much this field but I guess we could cache the translated
messages on startup instead of requiring a translation each time. Or do
we do that already? Jean-Marc?
Nice investigation work Peter!
Abdel.