
Originally Posted by
Uwe
In fact there is even more potential for optimizations as the image composition could be distributed to several threads ( like it is available for raster plot items) what would speed up by a factor according to the number of CPU cores.
I have added the option for simple dots to SVN trunk. At the moment it is available for 1 pixel dots only, but sooner or later I will add an implementation for larger pens too.
If you want to test it you have to do the following:
curve->setRenderThreadCount( 0 ); // 0: use QThread::idealThreadCount()
curve->setSymbol( NULL );
curve->setRenderThreadCount( 0 ); // 0: use QThread::idealThreadCount()
curve->setSymbol( NULL );
curve->setStyle( QwtPlotCurve::Dots );
To copy to clipboard, switch view to plain text mode
I checked the ( new ) scatterplot example with 1 million points on a dual core system ( Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz ). For 1 thread the image composition takes ~40ms, for 2 threads it is about ~22ms. On my Atom board ( Intel(R) Atom(TM) CPU 330 @ 1.60GHz ) with Qwt compiled in debug mode it is 280ms and 150 ms.
Using the magnifier on X11 feels o.k. but not perfect on the Atom board for fullscreen plots - probably because of the QImage -> QPixmap transformation. With using the raster paint engine on X11 ( default since Qt 4.8 ) this step is of course not necessary. So this is one of the situations, where the raster paint engine is faster than the X11 paint engine. Of course the situation is very different for remote X11.
Uwe
Bookmarks