Problem:
Huge circuits with hundreds, if not thousands, of objects bog down
the editor. Symptoms are noticable delays when creating objects and
connecting objects together.
Recommend:
*When objects are connected together, ABox has to recreate a list
that determines the order in which objects compute -- a process refered
to as 'tracing the circuit'. Building the list is similar to building
a 'spanning tree' for a directed cyclic graph. For large graphs, finding
the spanning tree, then linearizing it, can take much time. It is not
known if ABox's spanning algorithm is optimal -- perhaps it can be
improved.
*Alternately: Since objects can be grouped together, and editing can
only happen inside or outside of a group (never both at the same time),
it should be unnecessary to trace both the inside and outside of a
group when only one side has changed.
*Circuit tracing happens in the PlayThread.
*A circuit trace is only required when connections between objects
change. Merely creating a new unconnected object should not require a
trace operation. Thus, the delay after creating an object may be a
symptom of a different problem.
Original issue reported on code.google.com by andyt7...@gmail.com on 8 Jul 2011 at 9:09
Original issue reported on code.google.com by
andyt7...@gmail.com
on 8 Jul 2011 at 9:09