Re: toward a more efficient event loop
"Marcel Taeumel (H) via Squeak-dev" <[email protected]>
| Newsgroups | gmane.comp.lang.smalltalk.squeak.general |
|---|---|
| Message-ID | <[email protected]> |
Hi Nicolas -- I also noticed that the overall responsiveness on macOS is not great compared to Windows. Especially the way macOS mouse-wheel events arrive is annoying. We should improve on that. Some of your observations are platform-specific behavior. We must cross-check improvements across all major platforms. Best Marcel Am 22.08.2026 um 21:18 schrieb Nicolas Cellier: > Hi all, > if you compare Cuis morphic feel to Squeak morphic feel, the former > looks snappy, the latter sluggish. > Especially if your trackpad generates a bunch of MouseWheelEvent > (MouseScrollEvent in Cuis) whenever you're willing to scroll. > Why is that? > > Squeak World goes through an interCyclePause: at every mouse event. > Indeed, when the hand *processEvents* it stops at first mouse event > encountered. > > Hence, unless you are ready to sacrifice some battery life with a > PreferenceshigherPerformance, > the event buffer might take several seconds to drain with such > strategy, especially on mac. > It makes the user experience somehow catastrophic. > > Cuis has a different strategy: > - processEvents drains the event buffer. > however, it only processes one mouse move event per cycle, and drops > the other ones. > - the world cycle doesn't pause if (lastCycleHadAnyEvent or: [ > deferredUIMessages isEmpty not ]) > - it also does not pause further than the next morphic step or alarm > - the pause grows gradually from 20 to 200ms whenever there is no activity > but at least %)ms in server mode > > Maybe it's time to revise our strategy too ! > > Nicolas > > Squeak-dev mailing list [email protected] > To unsubscribe send an email [email protected] Squeak-dev mailing list -- [email protected] To unsubscribe send an email to [email protected]