Documentation for MessageTally/TimeProfileBrowser?

Mark Guzdial guzdial at cc.gatech.edu
Wed Mar 22 14:39:47 UTC 2000


Thanks to all for all the explanations!  That helps alot!  (*ORANGE* 
BOOK! Of course, that's where I saw it!  I do have a copy of 
that...somewhere...)

Mark

At 12:19 AM -0800 3/22/00, Dan Ingalls wrote:
>Dwight Hughes <dwighth at ipa.net> wrote...
> >Some documentation for MessageTally>>spyOn: is in the Orange Book -
> >Chapter 14.
> >
> >In Squeak I ran:
> >MessageTally spyOn: [10000 timesRepeat: [3.14159 printString]]
> >and got:
> >                         <Spy Results>
>
>And don't forget about...
>
>	MessageTally tallySends: [3.14159 printString]
>
>...which is unique to Squeak and provides exact tallies.  While a 
>little less valuable for understanding where the time goes, it is 
>much more valuable for understanding the program logic and the 
>statistics of the test case.  I have gotten some great ah-ha's by 
>running this on the VM (a stress test in itself).
>
>Here's what it produces for this example...
>--------------------------------------
>This simulation took 0.0 seconds.
>**Tree**
>2 Float(Object)>>printString
>  1 Float(Number)>>printOn:
>    |1 Float>>printOn:base:
>    |  1 Float>>absPrintOn:base:
>    |    |7 SmallInteger>>*
>    |    |  |7 SmallInteger(Integer)>>*
>    |    |  |  7 Float>>adaptToInteger:andSend:
>    |    |7 LimitedWriteStream(WriteStream)>>nextPut:
>    |    |6 Character class>>digitValue:
>    |    |6 False>>|
>    |    |1 Float(Number)>>ceiling
>    |    |  |1 Float>>negated
>    |    |  |1 Float(Number)>>floor
>    |    |  |1 SmallInteger(Number)>>negated
>    |    |1 Float>>significand
>    |    |  |1 SmallInteger(Number)>>negated
>    |    |1 Float(Number)>>raisedToInteger:
>    |    |  |1 False>>|
>    |    |1 Float>>isInfinite
>    |    |1 Float>>reciprocalLogBase2
>    |    |1 SmallInteger(Magnitude)>>between:and:
>    |    |1 False>>&
>    |    |1 True>>|
>    |  1 Float>>isNaN
>  1 String class(SequenceableCollection class)>>streamContents:limitedTo:
>    1 LimitedWriteStream class(PositionableStream class)>>on:
>      |1 LimitedWriteStream(WriteStream)>>on:
>      |  1 LimitedWriteStream(PositionableStream)>>on:
>      |    1 LimitedWriteStream(WriteStream)>>reset
>      |      1 SmallInteger(Magnitude)>>max:
>    1 LimitedWriteStream(WriteStream)>>contents
>      |1 String(SequenceableCollection)>>copyFrom:to:
>      |  |1 String(Object)>>species
>      |1 SmallInteger(Magnitude)>>max:
>    1 LimitedWriteStream>>setLimit:limitBlock:
>    1 SmallInteger(Magnitude)>>min:
>
>**Leaves**
>7 SmallInteger>>*
>          7 Float>>absPrintOn:base:
>7 False>>|
>          6 Float>>absPrintOn:base:
>          1 Float(Number)>>raisedToInteger:
>7 LimitedWriteStream(WriteStream)>>nextPut:
>          7 Float>>absPrintOn:base:
>7 SmallInteger(Integer)>>*
>          7 SmallInteger>>*
>7 Float>>adaptToInteger:andSend:
>          7 SmallInteger(Integer)>>*
>6 Character class>>digitValue:
>          6 Float>>absPrintOn:base:
>2 Float(Object)>>printString
>          2 FakeClassPool>>DoIt
>2 SmallInteger(Magnitude)>>max:
>          1 LimitedWriteStream(WriteStream)>>contents
>          1 LimitedWriteStream(WriteStream)>>reset
>2 SmallInteger(Number)>>negated
>          1 Float>>significand
>          1 Float(Number)>>ceiling
>1 Float(Number)>>floor
>          1 Float(Number)>>ceiling
>1 Float>>negated
>          1 Float(Number)>>ceiling
>1 Float>>isInfinite
>          1 Float>>absPrintOn:base:
>1 Float>>reciprocalLogBase2
>          1 Float>>absPrintOn:base:
>1 String class(SequenceableCollection class)>>streamContents:limitedTo:
>          1 Float(Object)>>printString
>1 True>>|
>          1 Float>>absPrintOn:base:
>1 Float>>absPrintOn:base:
>          1 Float>>printOn:base:
>1 Float>>printOn:base:
>          1 Float(Number)>>printOn:
>1 LimitedWriteStream class(PositionableStream class)>>on:
>          1 String class(SequenceableCollection 
>class)>>streamContents:limitedTo:
>1 Float(Number)>>ceiling
>          1 Float>>absPrintOn:base:
>1 LimitedWriteStream(PositionableStream)>>on:
>          1 LimitedWriteStream(WriteStream)>>on:
>1 String(SequenceableCollection)>>copyFrom:to:
>          1 LimitedWriteStream(WriteStream)>>contents
>1 LimitedWriteStream(WriteStream)>>reset
>          1 LimitedWriteStream(PositionableStream)>>on:
>1 String(Object)>>species
>          1 String(SequenceableCollection)>>copyFrom:to:
>1 SmallInteger(Magnitude)>>min:
>          1 String class(SequenceableCollection 
>class)>>streamContents:limitedTo:
>1 Float>>significand
>          1 Float>>absPrintOn:base:
>1 Float>>isNaN
>          1 Float>>printOn:base:
>1 Float(Number)>>raisedToInteger:
>          1 Float>>absPrintOn:base:
>1 LimitedWriteStream(WriteStream)>>contents
>          1 String class(SequenceableCollection 
>class)>>streamContents:limitedTo:
>1 SmallInteger(Magnitude)>>between:and:
>          1 Float>>absPrintOn:base:
>1 LimitedWriteStream>>setLimit:limitBlock:
>          1 String class(SequenceableCollection 
>class)>>streamContents:limitedTo:
>1 False>>&
>          1 Float>>absPrintOn:base:
>1 LimitedWriteStream(WriteStream)>>on:
>          1 LimitedWriteStream class(PositionableStream class)>>on:
>1 Float(Number)>>printOn:
>          1 Float(Object)>>printString

--------------------------
Mark Guzdial : Georgia Tech : College of Computing : Atlanta, GA 30332-0280
(404) 894-5618 : Fax (404) 894-0673 : guzdial at cc.gatech.edu
http://www.cc.gatech.edu/gvu/people/Faculty/Mark.Guzdial.html





More information about the Squeak-dev mailing list