Hi
An idea to improve roassal scalability was to split the collection
elements belonging to ROContainers and builder, into two different
collections : edges and nodes.
It would permit not to unset shape after we add new edges or nodes, and
it would save little time when asking for elementsNotEdges.
But after a little trial, it seems that it will ask a huge refactor of
roassal to see a real gain in time, with just splitting the collection
it gets worse.
For example, each time we need both nodes and edges in the same
collection we have to concatenate the new collections and it's time
consuming.
Always working with Object withAllSubclasses as benchmark, we spend 28
second in copyReplaceFrom:to:with ( concatenation ).
And it brings us from 69 sec to 136 sec... A beautiful loss of 67
seconds...
The idea came when using rawEdgesFrom:to: was long, in fact it used to
call elementsNotEdges for each iteration, then in our case a little more
than 11000 times, and that was long, but now, as we don't call it so
often it is quick enough.
That was maybe not that a good idea to split the collection.
Tell me what you think.
Regards
Mathieu