Use sysprof or just run under a debugger and interrupt regularly should
help you spot in which method(s) most time is spent
Le 20/06/2022 à 18:48, David Marteau via QGIS-Developer a écrit :
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, <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 <http://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
--
http://www.spatialys.com
My software is free, but my time generally not.
_______________________________________________
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