[QGIS-Developer] Qgis server: terrible performance with Qgis 3.26

Nyall Dawson nyall.dawson at gmail.com
Mon Jun 20 09:38:33 PDT 2022


On Mon, 20 June 2022, 11:42 pm David Marteau, <dmarteau at 3liz.com> wrote:

> Hi,
> > You should set the other new read optimisation flags here -- see
> https://github.com/qgis/QGIS/blob/88ebb3f2f513dbce5a775f50e51ea0117f859c65/src/core/qgis.h#L1962
>
> These are already available also in 3.24 and we use the
> `TrustLayerMetadata` in the above test. For server,  the other flags are
> not applicable (Getprint requests need print layouts ).
>
> So that mean we are comparing 3.24 to 3.26 with same level of read
> optimisation and that does not change the fact that, for that very same
> level of read optimisation, project's loading is incredibly  slower in 3.26.
>

You'll need to set the new flags relating to skipping the 3d views and
project style loading in order to compare properly. Neither of those things
were occurring in 3.24, and both have an associated cost. And neither are
relevant for server.

Nyall

>
>
> Le 20/06/2022 à 15:10, Nyall Dawson a écrit :
>
>
>
> On Mon, 20 June 2022, 9:37 pm David Marteau via QGIS-Developer, <
> qgis-developer at lists.osgeo.org> wrote:
>
>> Hi,
>>
>> I have noticed a huge drop of performance while testing Qgis server with
>> Qgis 3.26, from 10x to 30x slower as usual.
>>
>> Trying to reduce the problem I have found a huge increase of time spend
>> reading the project in 3.26 compared to 3.24.
>>
>> Here some benchmark with very simple project from the test data set.
>> Note: the project has been updated with qgis 3.26:
>>
>> Qgis 3.24:
>> ======
>>
>> readflags = QgsProject.ReadFlags()
>> readflags |= QgsProject.FlagTrustLayerMetadata
>>
>> prj = QgsProject()
>>
>> %timeit -n 1 prj.read(f"{datapath}/france_parts.qgs",readflags)
>>
>> > 15.7 ms ± 205 µs per loop (mean ± std. dev. of 7 runs, 1 loop each)
>>
>> Qgis 3.26:
>> ======
>>
>> readflags = QgsProject.ReadFlags()readflags |= QgsProject.FlagTrustLayerMetadata
>>
>>
> You should set the other new read optimisation flags here -- see
> https://github.com/qgis/QGIS/blob/88ebb3f2f513dbce5a775f50e51ea0117f859c65/src/core/qgis.h#L1962
>
> Nyall
>
> ​prj = QgsProject()
>>
>> %timeit -n 1 prj.read(f"{datapath}/france_parts.qgs",readflags)
>>
>> 195 ms ± 44 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
>>
>> There is a factor x10 between Qgis 3.24 et Qgis 3.26 for the exact same
>> project.
>> This has serious impact on requests: landing page catalog request time
>> increased from approximatevely 110ms to more than 3.0s with our test data
>> set.
>>
>> David Marteau
>> www.3liz.com
>> _______________________________________________
>> QGIS-Developer mailing list
>> QGIS-Developer at lists.osgeo.org
>> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20220621/7bb85c9d/attachment.htm>


More information about the QGIS-Developer mailing list