[CONNECTORS] performance improvement idea (was RE: [Q] slow animated dashed lines/connectors)

Ned Konz ned at bike-nomad.com
Sat Apr 19 16:06:37 UTC 2003

On Saturday 19 April 2003 08:05 am, Hernan Tylim wrote:
> Hi,
> 	I have a similar problem and what I thought to improve the UI
> response when using too many connectors was to modify the
> connector's step mechanism so they would step in a thread/process
> with less priority than the UI thread (rather than in the same as
> it is now). About the morphic calls that would be needed to be
> executed by the connector on its step method (like for example
> #position) they would be executed with a #addDeferredUIMessage:.
> 	My guess is that when you have too many connectors and they only
> are computing constraints (there are not too mach drawing involved)
> all this #step execution shouldn't affect the UI no more. But I
> didn't test it.

I think this isn't a problem with the constraint computation, but with 
the repeated redrawing.

> 	In your particular case I don't know if it would help because it
> seems there are too many draws, though
> 	Ned, What do you think about this idea? Is it doable?

Could be. There are three different step methods active in this case:

* the Connector step method, which is trying to compute the proper 
parent for the Connector. This could be lower priority.
* the constraint step methods, which return quickly after computing 
the target if they don't have to move.
* the PolygonMorph step method, which is animating the dashed line 
(and causing a redraw).

> NOTE: I didn't execute any profiler so I don't really know that the
> step methods are the ones causing the sluggishness.

I have noticed some slowdown in *very* complicated Connectors drawings 
because of the step methods. But then I got a faster computer, and it 
didn't bother me any more.

Ned Konz

More information about the Squeak-dev mailing list