Morphic slowness (was Re: Does *anyone* use MVC?)

Norton, Chris chrisn at Kronos.com
Thu Aug 1 23:04:35 UTC 2002


Hi Guys.

I ran Andreas' script to test menu popups.  I dunno if this'll help you, but
here's what i get on my 1 GHz Windows NT 4.0 box (service pk 6+) -- Using a
virgin Squeak 3.2 image & VM.  I see that my image spent more time in the
TransformMorph>>fullDrawOn: than Tim's acorn image did.

Cheers,

---==> Chris

 - 231 tallies, 3764 msec.

**Tree**
76.6% {2883ms} PasteUpMorph>>doOneCycleNow
  |76.6% {2883ms} WorldState>>doOneCycleNowFor:
  |  74.9% {2819ms} WorldState>>displayWorldSafely:
  |    74.9% {2819ms} PasteUpMorph>>displayWorld
  |      74.9% {2819ms} PasteUpMorph>>privateOuterDisplayWorld
  |        74.9% {2819ms} WorldState>>displayWorld:submorphs:
  |          67.5% {2541ms} WorldState>>drawWorld:submorphs:invalidAreasOn:
  |            |66.7% {2511ms} FormCanvas(Canvas)>>fullDrawMorph:
  |            |  66.7% {2511ms} FormCanvas(Canvas)>>fullDraw:
  |            |    66.2% {2492ms} SystemWindow(Morph)>>fullDrawOn:
  |            |      55.0% {2070ms} SystemWindow(Morph)>>drawSubmorphsOn:
  |            |        |54.5% {2051ms} FormCanvas(Canvas)>>fullDrawMorph:
  |            |        |  54.5% {2051ms} FormCanvas(Canvas)>>fullDraw:
  |            |        |    54.5% {2051ms}
PluggableListMorph(Morph)>>fullDrawOn:
  |            |        |      45.9% {1728ms}
PluggableListMorph(Morph)>>drawSubmorphsOn:
  |            |        |        |45.9% {1728ms}
FormCanvas(Canvas)>>fullDrawMorph:
  |            |        |        |  45.9% {1728ms}
FormCanvas(Canvas)>>fullDraw:
[45.9% {1728ms} TransformMorph(Morph)>>fullDrawOn:
[  19.5% {734ms} AlignmentMorph(Morph)>>drawSubmorphsOn:
[    |19.5% {734ms} FormCanvas(Canvas)>>fullDrawMorph:
[    |  19.5% {734ms} FormCanvas(Canvas)>>fullDraw:
[    |    19.5% {734ms} PluggableButtonMorph(Morph)>>fullDrawOn:
[    |      7.4% {279ms} PluggableButtonMorph(Morph)>>drawSubmorphsOn:
[    |        |7.4% {279ms} FormCanvas(Canvas)>>fullDrawMorph:
[    |        |  7.4% {279ms} FormCanvas(Canvas)>>fullDraw:
[    |        |    7.4% {279ms} AlignmentMorph(Morph)>>fullDrawOn:
[    |        |      3.0% {113ms} FormCanvas(Canvas)>>drawMorph:
[    |        |        3.0% {113ms} FormCanvas(Canvas)>>draw:
[    |        |          2.6% {98ms} RectangleMorph(Morph)>>drawOn:
[    |      5.2% {196ms} FormCanvas(Canvas)>>roundCornersOf:during:
[    |        |4.8% {181ms} FormCanvas>>roundCornersOf:in:during:
[    |        |  4.3% {162ms} CornerRounder
class>>roundCornersOf:on:i...orderWidth:corners:
[    |        |    3.0% {113ms}
CornerRounder>>tweakCornersOf:on:in:borderWidth:corners:
[    |      3.5% {132ms} FormCanvas(Canvas)>>drawMorph:
[    |        3.5% {132ms} FormCanvas(Canvas)>>draw:
[  14.3% {538ms} TransformMorph>>drawSubmorphsOn:
[    |13.0% {489ms} FormCanvas(Canvas)>>fullDrawMorph:
[    |  13.0% {489ms} FormCanvas(Canvas)>>fullDraw:
[    |    13.0% {489ms} TextMorphForEditView(Morph)>>fullDrawOn:
[    |      10.4% {391ms} FormCanvas(Canvas)>>drawMorph:
[    |        10.4% {391ms} FormCanvas(Canvas)>>draw:
[    |          7.4% {279ms} TextMorphForEditView(TextMorph)>>drawOn:
[    |            |6.9% {260ms} FormCanvas>>paragraph:bounds:color:
[    |            |  5.2% {196ms} NewParagraph>>displayOn:using:at:
[    |            |    4.3% {162ms}
DisplayScanner>>displayLine:offset:leftInRun:
[    |          3.0% {113ms} StringMorph>>drawOn:
[    |            3.0% {113ms} FormCanvas(Canvas)>>drawString:in:font:color:
[    |              3.0% {113ms}
FormCanvas>>drawString:from:to:in:font:color:
[  4.8% {181ms} FormCanvas(Canvas)>>roundCornersOf:during:
[    |4.8% {181ms} FormCanvas>>roundCornersOf:in:during:
[    |  4.3% {162ms} CornerRounder
class>>roundCornersOf:on:i...orderWidth:corners:
[    |    3.5% {132ms}
CornerRounder>>tweakCornersOf:on:in:borderWidth:corners:
[  4.3% {162ms} FormCanvas(Canvas)>>drawMorph:
[    4.3% {162ms} FormCanvas(Canvas)>>draw:
[      3.0% {113ms} RectangleMorph(Morph)>>drawOn:
[        2.6% {98ms}
FormCanvas(Canvas)>>fillRectangle:fillStyle:borderStyle:
  |            |        |      5.2% {196ms} FormCanvas(Canvas)>>drawMorph:
  |            |        |        5.2% {196ms} FormCanvas(Canvas)>>draw:
  |            |      6.5% {245ms} FormCanvas(Canvas)>>drawMorph:
  |            |        |6.5% {245ms} FormCanvas(Canvas)>>draw:
  |            |        |  6.1% {230ms} SystemWindow(Morph)>>drawOn:
  |            |        |    5.6% {211ms}
FormCanvas(Canvas)>>fillRectangle:fillStyle:borderStyle:
  |            |        |      5.2% {196ms}
RaisedBorder(SimpleBorder)>>frameRectangle:on:
  |            |      4.8% {181ms}
FormCanvas(Canvas)>>roundCornersOf:during:
  |            |        4.8% {181ms} FormCanvas>>roundCornersOf:in:during:
  |            |          3.9% {147ms} CornerRounder
class>>roundCornersOf:on:i...orderWidth:corners:
  |          7.4% {279ms} WorldState>>forceDamageToScreen:
  |            7.4% {279ms} DisplayScreen>>forceDamageToScreen:
  |              3.9% {147ms} OrderedCollection>>do:
  |              3.5% {132ms} DisplayScreen>>forceToScreen:
16.5% {621ms} MenuMorph>>popUpAt:forHand:in:
  |16.0% {602ms} MenuMorph>>popUpAt:forHand:in:allowKeyboard:
  |  13.0% {489ms} PasteUpMorph>>addMorphFront:
  |    13.0% {489ms} PasteUpMorph(Morph)>>addMorphInFrontOfLayer:
  |      13.0% {489ms} PasteUpMorph(Morph)>>addMorph:inFrontOf:
  |        13.0% {489ms} PasteUpMorph(Morph)>>privateAddMorph:atIndex:
  |          13.0% {489ms} PasteUpMorph(Morph)>>addedOrRemovedSubmorph:
  |            13.0% {489ms} MenuMorph(Morph)>>fullBounds
  |              13.0% {489ms} MenuMorph(Morph)>>doLayoutIn:
  |                10.8% {407ms} TableLayout>>layout:in:
  |                  10.8% {407ms} TableLayout>>layoutTopToBottom:in:
  |                    7.8% {294ms} MenuItemMorph(Morph)>>layoutInBounds:
  |                      4.3% {162ms} MenuItemMorph(Morph)>>bounds:
6.1% {230ms} PluggableListMorph>>getMenu:
  6.1% {230ms} PluggableListMorph(ScrollPane)>>getMenu:

**Leaves**
5.2% {196ms} OrderedCollection>>do:
4.3% {162ms} GrafPort(BitBlt)>>clipRect:
3.9% {147ms} Rectangle class>>origin:corner:
3.9% {147ms} Point>>+
3.5% {132ms} DisplayScreen>>forceToScreen:
3.5% {132ms} IdentityDictionary>>scanFor:
3.0% {113ms} IdentityDictionary(Dictionary)>>at:ifAbsent:
2.6% {98ms} IdentityDictionary(Set)>>findElementOrNil:
2.6% {98ms} Rectangle>>setOrigin:corner:
2.6% {98ms} Rectangle>>right
2.6% {98ms} StringMorph(Morph)>>valueOfProperty:ifAbsent:
2.6% {98ms} Point>>-

**Memory**
	old			+48,268 bytes
	young		-137,948 bytes
	used		-89,680 bytes
	free		+89,680 bytes

**GCs**
	full			0 totalling 0ms (0.0% uptime)
	incr		369 totalling 441ms (12.0% uptime), avg 1.0ms
	tenures		1 (avg 369 GCs/tenure)
	root table	0 overflows



More information about the Squeak-dev mailing list