Q: What makes Morphic slow?

Dean_Swan at Mitel.COM Dean_Swan at Mitel.COM
Sat Nov 20 00:25:37 UTC 1999



From:  Dean Swan at MITEL on 11/19/99 07:25 PM

I've included a #MessageTally report here that was collected on a Casio E-105
running Squeak 2.5 with Andreas Raab's 2.5 VM and 2.5 Image through Change Set
#1383.  This report was collected while in a newly opened Morphic project,
tapping to get the WorldMenu, selecting 'new morph...' and waiting for the 'new
morph' menu to appear.  Then I tapped the world background to close the menu.
Finally I stopped the tally.

I don't really understand these reports all that well, and would greatly
appreciate it if somebody who does could explain them.  Does this point to an
obvious place where the time is getting used up?

I would be especially interested in what Andreas Raab and John Maloney make of
this, as I've touched on performance issues with both of them in the past.


                                         Thanks.

                                         -Dean Swan
                                         dean_swan at mitel.com



 - 2318 tallies.

**Tree**
81.9 PasteUpMorph>>doOneCycle
  |73.9 PasteUpMorph>>doOneCycleNow
  |  |63.4 HandMorph>>processEvents
  |  |  |28.0 HandMorph>>handleEvent:
  |  |  |  |14.0 HandMorph>>handleMouseUp:
  |  |  |  |  |14.0  MenuItemMorph>>mouseUp:
  |  |  |  |  |  13.8 MenuMorph>>invokeItem:event:
  |  |  |  |  |    13.7 HandMorph>>newMorph
  |  |  |  |  |      7.2 HandMorph>>alphabeticalMorphMenu
  |  |  |  |  |        |3.8 MenuMorph>>add:target:selector:argument:
  |  |  |  |  |        |  3.8 MenuMorph>>add:target:selector:argumentList:
  |  |  |  |  |      3.2 MenuMorph>>add:target:selector:argument
  |  |  |  |  |        3.2 MenuMorph>>add:target:selector:argumentList:
  |  |  |  |8.3 HandMorph>>handleMouseDown:
  |  |  |  |  |7.9 PasteUpMorph>>mouseDown:
  |  |  |  |  |  7.9 HandMorph>>invokeMetaMenu:
  |  |  |  |  |    5.1 HandMorph>>invokeMenu:event:
  |  |  |  |  |      |5.1 MenuMorph>>popUpAt:event:
  |  |  |  |  |      |  5.1 MenuMorph>>popUpAt:forHand:
  |  |  |  |  |      |    3.5 MenuMorph(Morph)>>position:
  |  |  |  |  |      |      3.1 MenuMorph(Morph)>>changed
  |  |  |  |  |      |        3.1 MenuMorph(AlignmentMorph)>>fullBounds
  |  |  |  |  |      |         2.5 MenuMorph(AlignmentMorph)>>fixLayout
  |  |  |  |  |      |           2.4
MenuMorph(AlignmentMorph)>>placeAndSize:at:padding:
  |  |  |  |  |    2.3 HandMorph>>buildWorldMenu
  |  |  |  |5.4 HandMorph>>handleMouseMove:
  |  |  |  |  2.7 HandMorph>>handleDragOver:
  |  |  |17.5 InputSensor>>cursorPoint
  |  |  |  |17.5 InputSensor>>mousePoint
  |  |  |17.3 primitives
  |  |10.3 PasteUpMorph>>displayWorldSafely
  |  |  10.3 PasteUpMorph>>displayWorld
  |  |    7.8 PasteUpMorph>>drawInvalidAreasOn:
  |  |      7.3 MenuMorph>>fulDrawOn:
  |  |        7.1 MenuMorph(Morph)>>fullDrawOn:
  |  |          6.2 MenuMorph(Morph)>>drawSubmorphsOn:
  |  |            6.1 FormCanvas(Canvas)>>fullDrawMorph:
  |  |              4.7 FormCanvas(Canvas)>>fullDraw:
  |  |                4.7 MenuItemMorph(Morph)>>fullDrawOn:
  |  |                  4.4 FormCanvas(Canvas)>>drawMorph:
  |  |                    4.4 FormCanvas(Canvas)>>draw:
  |  |                      3.8 MenuItemMorph>>drawOn:
  |  |                        3.1 MenuItemMorph(StringMorph)>>drawOn:
  |  |                          3.1 FormCanvas>>text:bounds:font:color:
  |  |                            2.5 QuickPrint>>drawString:at:
  |8.0 PasteUpMorph>>interCyclePause:
  |  7.9 Delay>>wait
  |    7.8 primitives
17.2 primitives

**Leaves**
17.5 InputSensor>>mousePoint
17.3 HandMorph>>processEvents
17.2 HandMorph>>startMessageTally
7.8 Delay>>wait
2.7 QuickPrint>>drawString:at:






"Serg Koren" <serg at freewwweb.com> on 11/19/99 12:44:57 PM

Please respond to Serg at VisualNewt.com

To:   squeak at cs.uiuc.edu
cc:    (bcc: Dean Swan/Ogd/Mitel)

Subject:  RE: Q: What makes Morphic slow?




Just a quick observation without really digging.
Casio E-105, using full image.
Pen taps (no mouse) are slow to draw menus.
S

-----Original Message-----
From: stefan at cs.uiuc.edu [mailto:stefan at cs.uiuc.edu]On Behalf Of Stefan
Rieken
Sent: Friday, November 19, 1999 11:03 AM
To: squeak at cs.uiuc.edu
Subject: Re: Q: What makes Morphic slow?


Henrik Gedenryd wrote:
>

> Could perhaps people with slow computers (PDAs and Pentiums according to
the
> list :-) look at what is slow--with no need to dig into the code, just
> looking at whether it's responding to events, redrawing, startup, etc.
>
> It's a shame Morphic is too slow to use on PDAs, where easy UI prototyping
> would really be useful.
>
> Henrik

Hello,

Pentium owner here. I don't know if it really is a part of Morphic that
makes it slow, but when I make an image, or write something and then
rotate it, Squeak starts to get slow.

Never really digged it out, but maybe Squeak keeps on recomputing the
rotation instead of just making a new bitmap for the rotated image.
While this saves the images quality, it increases computing a lot. If
this is true, I would propose to have two versions of a rotated image:
one to save the original image bitmap, and one rotated version to
display. Every time an image needs to be recomputed (for instance when
selecting text), whe use the saved original and just compute it. But
when it is not necessary, whe just display the already rotated version.

Remind that I don't know if Squeak works that way. But I experience this
problem, and just started fantasising about where it could come from.

Greets,

Stefan





More information about the Squeak-dev mailing list