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

David Marteau dmarteau at 3liz.com
Mon Jun 20 09:48:58 PDT 2022


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


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 <http://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/20220620/109c06ec/attachment-0001.htm>


More information about the QGIS-Developer mailing list