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

Nyall Dawson nyall.dawson at gmail.com
Mon Jun 20 09:52:28 PDT 2022


On Tue, 21 June 2022, 2:48 am David Marteau, <dmarteau at 3liz.com> wrote:

> I used the following test:
>
> readflags = Qgis.ProjectReadFlags()readflags |= Qgis.ProjectReadFlag.TrustLayerMetadata|Qgis.ProjectReadFlag.DontLoad3DViews|Qgis.ProjectReadFlag.DontLoadProjectStyles
> prj = QgsProject()
> %timeit -n 1 prj.read(f"{datapath}/france_parts3_26.qgs",readflags)
>
> 105 ms ± 18.5 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
>
> This improve the result  but we are still much higher that the loading
> time of 3.24: 15ms compared to 105ms
>

Thanks for the update! Can you fire up hotspot (or similar) and see where
the time is spent?

Nyall

>
> Le 20/06/2022 à 18:38, Nyall Dawson a écrit :
>
>
>
> 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/92adcfe5/attachment.htm>


More information about the QGIS-Developer mailing list