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