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

Raymond Nijssen r.nijssen at terglobo.nl
Wed Jul 29 00:04:36 PDT 2015


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?

Hoping anyone can explain!

Regards,
Raymond


-- 
Terglobo
Ampèrestraat 110
5223 CT 's-Hertogenbosch
The Netherlands
+31 6 25 31 49 83


More information about the Qgis-developer mailing list