Q: What makes Morphic slow?

Bob Arning arning at charm.net
Sun Nov 21 16:22:04 UTC 1999


On Sat, 20 Nov 1999 22:26:26 +0100 Stefan Matthias Aust <sma at 3plus4.de> wrote:
>Update to my previous email:  A "Transcript show:" showed that list morphs
>aren't created that often but only four times as they should.
>
>But then, what do the numbers mean? 
>
>Sorry for this confusion,

Stefan,

It is a bit confusing. One reason you see abnormally high numbers is that MessageTally does not distinguish between BlockContext and MethodContext - it simply reports the method associated with each context on the stack. If you evaluate:

	MessageTally tallySends: [Smalltalk do: [ :each | ]]

you will get something like:

This simulation took 1.0 seconds.
**Tree**
1123 SystemDictionary(Dictionary)>>do:
  2177 SystemDictionary(Set)>>do:
    1 Array(SequenceableCollection)>>do:

**Leaves**
2177 SystemDictionary(Set)>>do:
       2177 SystemDictionary(Dictionary)>>do:
1123 SystemDictionary(Dictionary)>>do:
       1123 UndefinedObject>>DoIt
1122 UndefinedObject>>DoIt
1 Array(SequenceableCollection)>>do:
          1 SystemDictionary(Set)>>do:

yet we know we only sent on #do: to Smalltalk. A different (more informative, perhaps) report would be:

**Tree**
1 SystemDictionary(Dictionary)>>do:
  1 SystemDictionary(Set)>>do:
    1 Array(SequenceableCollection)>>do:
	  1123 [] in SystemDictionary(Set)>>do:
	    1123 [] in SystemDictionary(Dictionary)>>do:

I've thought about making MessageTally do this before, but it just hasn't crept up the list.

Cheers,
Bob





More information about the Squeak-dev mailing list