Dan at SqueakLand.org
Wed Jun 20 19:16:12 UTC 2001
>--On Wednesday, June 20, 2001 8:03 PM +0200 Henrik Gedenryd <Henrik.Gedenryd at lucs.lu.se> wrote:
>>Noel J. Bergman wrote:
>>>With respect to Morphic internals, Tim Rowledge recently implied that
>>>perhaps he'd go back inside it, and address the performance problems.
>>Andreas Raab has written to me that he knows a way to make Morphic
>>probably about 50% faster about 30% "lighter" (in terms of space usage),
>>but that he doesn't think people will accept those changes.
>But *why*? I kinda assume that Andreas doesn't think that we're all dummies or something. That suggests that there are some tradeoffs involved....
>(Andreas, I'm curious about this whatever the final decision would be!)
Here are a couple of points to bear in mind about Morphic speed (and MVC comparisons).
1. A significant part of MVC's zippiness is that it caches the full bitmap for every window on the screen (you can turn this off in the 'windows...' menu). We could easily do this in morphic as well. It takes more space, but we could certainly make it an option as with MVC. We tend to use full color 16-bit screens with morphic (my MVC window cache is clever in that it really saves only 1-bit deep ColorForms), but there are similar strategies for morphic as well.
2. Another part of the zippiness is that MVC blts screen bits around as part of scroll operations. This can save a lot of time, and it would be quite straightforward to put a cache into ScrollPane (for instance) to do this.
3. Finally, MVC simply doesn't do a lot of things that Morphic does. If MVC repainted its windows during reframing operations, it would not seem so much faster. Using the 'fastDragForMorphic' option in preferences.windows makes a dramatic difference for morphic on slow machines.
It may sound like I'm saying there are good reasons that Morphic is slow, but what I mean is that a couple of simple things (that we did a long time ago in MVC) could make it quite a bit faster. I really only think it would take a day or two to experiment with (1) and (2) above, if anyone is interested.
I don't know how this relates to other ideas that Andreas may have had.
More information about the Squeak-dev