speed of 2.9a

Marcel Weiher marcel at metaobject.com
Sun Dec 31 14:38:35 UTC 2000


> From: silence-squeak at nilpotent.org (Faried Nawaz)

> Also, 2.9 with the latest updates (3144) is a lot less responsive than 
> 3125. It's barely usable in its current state.  I have to click several 
> times or click-and-hold to select classes in the browser, for example. 
> Window decorations (close and minimize) are also very slow to  
react.  I'm
> not sure which update triggered this, but I can check tomorrow.

Yes, I have the same problems with 2.9-2710, which really got to me  
as I was re-writing the MacOS-X VM.

Anyway, I dug a little deeper and found a couple of things that  
surprised me:

1.	MVC vs. Morphic

My VM currently has all its input-sensor support #ifdef'ed out and  
is therefore purely event driven.  However, MVC, despite it having to  
rely on a Squeak-side sensor-simulation of the event-input from the  
VM, is a whole lot more responsive.

Another thing I noticed was that Morphic was synthesizing events  
from the simulated input-sensor synthesizewd from the VM's events.   
This changed when I switched to another project and back (it seems  
the check for wether to get events or simulate them is made at  
project-switch-time, despite this not really having much to do with  
the projects, and more with the underlying VM running the show).

2.	Event propagation

Through some logging, I discovered that events get to the VM  
quickly, even in Morphic.  It is within Morphic's event code that  
things get sluggish and/or lost.

In particular, the top of HandMorph>>processEvents reports events  
pretty much as they are input from the VM ( still as 8-element arrays  
/ event-buffers ).  However, they sometimes arrive much, much later  
at the top of HandMorph>>handleEvent:   (now as real morphic events).  
 Sometimes they don't arrive at all.  So something must be killing  
those events in the meantime.   ( I am not talking about mouse-moved  
events, but clicks).

Marcel





More information about the Squeak-dev mailing list