-
Notifications
You must be signed in to change notification settings - Fork 19
Description
The default implementation of toArray is not efficient: it first get the size n of the given EStructuralFeature and calls n times the get method, retrieving the elements of the collection one by one, creating many database calls.
This solution works at this level of abstraction, but can be optimized a lot in database-specific implementations. For example MapDB serializes the entire list as a single record. Calling multiple get on it implies multiple list deserializations which are very slow.
Same happens in Blueprints implementation, where getting an element at a given index is very costly.
This issue is also related to #33 and #34: generic code in the editor uses a lot toArray calls, inducing an important (and unnecessary) execution time overhead.