[Qgis-developer] memory layer performance while adding many features?

Hugo Mercier hugo.mercier at oslandia.com
Thu Jul 30 00:10:24 PDT 2015


Hi Raymond,

On 29/07/2015 09:04, Raymond Nijssen wrote:
> Dear developers, ;)
> 
> A plugin of mine imports data from a gml file into a memory layer. Works
> fine for tiny gml files, but takes forever on huge ones. Sounds
> plausible maybe, but the relation is not linear.
> 
> So I did did some tests and found out that reading and parsing the gml
> and creating the features always goes at the same speed of about 400
> features a second (fps). But when adding these to my memory layer, the
> process slows down tremendously.
> 
> I output the fps for every 1000 features and it gave me this graph:
> 
> http://terglobo.nl/downloads/memory-layer-performance.png
> 
> At the end of the importing process I'm processing just 3 features per
> second.
> 
> Is this expected behaviour? Is a memory layer not meant for something
> like this? Or is this a bug?
> 
> In the source code I found that for every feature I add to a memory
> layer the index is updated. Could that be inefficient?

If I am correct the spatial index is created only if you ask so (by
passing "index=yes"). Do you have the same results without spatial index ?



More information about the Qgis-developer mailing list