From: silence-squeak@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
squeak-dev@lists.squeakfoundation.org