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
|