Hi,

Using EditTransaction makes some plugins very slow.
I've already done a small patch, but it did not fix all the problems.
Diving into the code more deeply, I discovered that it uses several 
ArrayList of features and geometries, and "synchronize" these lists 
through object indices in the list.
Some methods use a "if (!list.contains(feature))" to check if an object 
exists before adding it to the list, which is very slow with more than 
100000 features (tested with explode and a big multi-geometry).
I'm not yet familiar with this part of the code, but I did not see an 
obvious reason not to use Set and Maps instead of multiple Lists 
synchronized with indices.
I'd like to test a refactoring after 1.4.2 release.

If some of you have advice or suggestion about it, they are welcome.

Michaël

In a slightly different domain, I was also wondering why the collection 
backing a FeatureCollection was a List and not a Set, but this is 
another story.

------------------------------------------------------------------------------
Special Offer -- Download ArcSight Logger for FREE!
Finally, a world-class log management solution at an even better 
price-free! And you'll get a free "Love Thy Logs" t-shirt when you
download Logger. Secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsisghtdev2dev
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to