On Tue, 21 June 2022, 2:48 am David Marteau, <dmart...@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, <dmart...@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@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@lists.osgeo.org >>> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer >>> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer >>> >>
_______________________________________________ QGIS-Developer mailing list QGIS-Developer@lists.osgeo.org List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer