[Qgis-developer] Benchmarking / optimization

Radim Blazek radim.blazek at gmail.com
Wed Nov 30 03:17:54 EST 2011


On Wed, Nov 30, 2011 at 7:49 AM, Paolo Cavallini <cavallini at faunalia.it> wrote:
>> Preparing projects for qgis_bench application, I noticed that qgis
>> renders the same project much slower than qgis_bench. I found that
>> QgsMapCanvasMap was using by default QPixmap, not QImage, which is 7
>> times slower!

> I tried checking and unchecking the option, but the results were not
> noticeable at the desktop level: did I miss something?

Good. Hopefully it was not so bad. QPixmap is using graphic card
acceleration, QImage does not. The difference could be in graphic
cards and Xserver drivers.

Could you try to grep debug (current master)

qgis 2>&1 | egrep '(Rendering completed|mUseQImageToReder)'

in my case it gives:

Debug: qgsmapcanvasmap.cpp: 63: (render) mUseQImageToRender = 0
Debug: qgsmaprenderer.cpp: 621: (render) Rendering completed in
(seconds): 39.732
Debug: qgsmapcanvasmap.cpp: 63: (render) mUseQImageToRender = 1
Debug: qgsmaprenderer.cpp: 621: (render) Rendering completed in (seconds): 7.435

Try to look which processes are using most CPU, in my case
QPixmap: qgis 40%, Xorg 100%
QImage: qgis 100%, Xorg 1%

BTW, I don't know why mMapCanvas->useImageToRender() and other
mMapCanvas settings are done from QgisApp::createOverview(), but it is
always called so it should not be important in this case.

Radim


More information about the Qgis-developer mailing list