I've been thinking about performance issues in GEF
and wondering about making GEF more array oriented than Collection oriented,
particularly as far as FigGroups are concerned.
All the FigGroups I've seen in actual applications
are of a fixed size so there is no great benefit in storing contents in a
collection rather than an array.
I'm considering making a distinction between those
FigGroups that are a fixed size or not. Fixed size figs will use an array as
their store and variable sized figs will use an ArrayList.
I'll probably determine which to create by whether
a Fig implements a certain interface. I've previously mentioned a possible
interface such as
Fig getFigAt(int i)
Maybe we should have 2 extensions of this
VariableFigContainer and FixedFigContainer
FixedFigContainer would add no extra methods but
act as a trigger to indicate storage by array.
VariableFigContainer would indicate storage by
ArrayList and would enforce the methods like
void addFig(Fig f);
I'd also like a test app put together to test
performance issues. Something that will automatically create a graph of a given
number of nodes and help with timing drags and so on. I'd like to know that from
one release of GEF to the next that we are not adding to any perfomance problems
the client app may already have.