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 19 Jun 2011 at 9:24
Original issue reported on code.google.com by
andyt7...@gmail.com
on 19 Jun 2011 at 9:24