Profile It - Use of TimeProfiler instead + general information displayed by default

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Profile It - Use of TimeProfiler instead + general information displayed by default

cedreek
Hi,

I made these small changes so that "profile it" open a TimeProfiler.

I also added a documentation method that is displayed when no method are selected. This doc need review. It's a summary of the chapter on profiling to explain the spy results.

Last remark, there is still a bug when selecting for instance the line **Tree** (see below). I think that was happening too before but right now I can't check (need to leave, I'll open a ticket later if needed).

hope it helps...

--
Cédrick



VM: unix - i686 - linux-gnu - Pharo0.1 of 16 May 2008 [latest update: #10074]
Image: Pharo1.0rc1 [Latest update: #10492]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /home/cedrick/Bureau/Poker/prjPoker-02nov
Trusted Dir /home/cedrick/Bureau/Poker/prjPoker-02nov/secure
Untrusted Dir /home/cedrick/Bureau/Poker/prjPoker-02nov/My Squeak

TimeProfileBrowser(Object)>>doesNotUnderstand: #allInstVarNames
    Receiver: a TimeProfileBrowser
    Arguments and temporary variables:
        aMessage:     allInstVarNames
        exception:     MessageNotUnderstood: TimeProfileBrowser>>allInstVarNames
        resumeValue:     nil
    Receiver's instance variables:
        dependents:     a DependentsArray(a SystemWindow(3666) a PluggableListMorph(1080) a...etc...
        contents:     nil
        currentCompiledMethod:     nil
        contentsSymbol:     #source
        systemOrganizer:     ('AST-Core-Matching')
('AST-Core-Nodes')
('AST-Core-Parser')
(...etc...
        classOrganizer:     nil
        metaClassOrganizer:     nil
        systemCategoryListIndex:     0
        classListIndex:     0
        messageCategoryListIndex:     0
        messageListIndex:     2
        editSelection:     #editMessage
        metaClassIndicated:     false
        messageList:     an OrderedCollection(' - 14 tallies, 37 msec.' '' '**Tree**' '----...etc...
        autoSelectString:     nil
        growable:     nil
        selectedClass:     Integer
        selectedSelector:     #factorial
        block:     MessageSend(#runBlock:pollingEvery: -> a TimeProfileBrowser)
        tally:     a MessageTally

SHParserST80>>initializeInstanceVariables
    Receiver: a SHParserST80
    Arguments and temporary variables:

    Receiver's instance variables:
        classOrMetaClass:     a TimeProfileBrowser
        source:     '"Choose a method to see its implementation
   
   
****General information...etc...
        workspace:     nil
        arguments:     a Dictionary()
        sourcePosition:     700
        currentToken:     nil
        currentTokenFirst:     Character space
        temporaries:     a Dictionary()
        instanceVariables:     a Set()
        errorBlock:     nil
        currentTokenSourcePosition:     nil
        blockDepth:     0
        bracketDepth:     0
        ranges:     an OrderedCollection(a SHRange)
        environment:     Smalltalk

SHParserST80>>parse:
    Receiver: a SHParserST80
    Arguments and temporary variables:
        isAMethod:     true
    Receiver's instance variables:
        classOrMetaClass:     a TimeProfileBrowser
        source:     '"Choose a method to see its implementation
   
   
****General information...etc...
        workspace:     nil
        arguments:     a Dictionary()
        sourcePosition:     700
        currentToken:     nil
        currentTokenFirst:     Character space
        temporaries:     a Dictionary()
        instanceVariables:     a Set()
        errorBlock:     nil
        currentTokenSourcePosition:     nil
        blockDepth:     0
        bracketDepth:     0
        ranges:     an OrderedCollection(a SHRange)
        environment:     Smalltalk

SHParserST80>>parse
    Receiver: a SHParserST80
    Arguments and temporary variables:

    Receiver's instance variables:
        classOrMetaClass:     a TimeProfileBrowser
        source:     '"Choose a method to see its implementation
   
   
****General information...etc...
        workspace:     nil
        arguments:     a Dictionary()
        sourcePosition:     700
        currentToken:     nil
        currentTokenFirst:     Character space
        temporaries:     a Dictionary()
        instanceVariables:     a Set()
        errorBlock:     nil
        currentTokenSourcePosition:     nil
        blockDepth:     0
        bracketDepth:     0
        ranges:     an OrderedCollection(a SHRange)
        environment:     Smalltalk

SHParserST80>>rangesIn:classOrMetaClass:workspace:environment:
    Receiver: a SHParserST80
    Arguments and temporary variables:
        sourceString:     '"Choose a method to see its implementation
   
   
****General infor...etc...
        aBehaviour:     a TimeProfileBrowser
        aWorkspace:     nil
        anEnvironmentOrNil:     nil
    Receiver's instance variables:
        classOrMetaClass:     a TimeProfileBrowser
        source:     '"Choose a method to see its implementation
   
   
****General information...etc...
        workspace:     nil
        arguments:     a Dictionary()
        sourcePosition:     700
        currentToken:     nil
        currentTokenFirst:     Character space
        temporaries:     a Dictionary()
        instanceVariables:     a Set()
        errorBlock:     nil
        currentTokenSourcePosition:     nil
        blockDepth:     0
        bracketDepth:     0
        ranges:     an OrderedCollection(a SHRange)
        environment:     Smalltalk

SHTextStylerST80>>rangesIn:setWorkspace:
    Receiver: a SHTextStylerST80
    Arguments and temporary variables:
        aText:     a Text for '"Choose a method to see its implementation
   
   
****General i...etc...
        aBoolean:     true
    Receiver's instance variables:
        sem:     nil
        backgroundProcess:     nil
        text:     a Text for '"Choose a method to see its implementation
   
   
****General in...etc...
        monitor:     a Monitor
        view:     a PluggableShoutMorph(625)
        stylingEnabled:     true
        classOrMetaClass:     a TimeProfileBrowser
        workspace:     nil
        font:     a LogicalFont
 familyName: DejaVu Sans Mono
 emphasis: nil
 pointSize: 9
...etc...
        parser:     a SHParserST80
        formatAssignments:     true
        environment:     nil
        sourceMap:     nil
        processedSourceMap:     nil
        pixelHeight:     13.33333333333333

SHTextStylerST80>>privateStyle:
    Receiver: a SHTextStylerST80
    Arguments and temporary variables:
        aText:     a Text for '"Choose a method to see its implementation

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

ParagraphEditor-tallySelection.st (1K) Download Attachment
TimeProfileBrowser-selectedMessage.st (960 bytes) Download Attachment
TimeProfileBrowser class-helpMessage.st (1K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Profile It - Use of TimeProfiler instead + general information displayed by default

Stéphane Ducasse
open a ticket.
Your changes are neat.

Stef

On Nov 13, 2009, at 6:29 PM, Cédrick Béler wrote:

> Hi,
>
> I made these small changes so that "profile it" open a TimeProfiler.
>
> I also added a documentation method that is displayed when no method are selected. This doc need review. It's a summary of the chapter on profiling to explain the spy results.
>
> Last remark, there is still a bug when selecting for instance the line **Tree** (see below). I think that was happening too before but right now I can't check (need to leave, I'll open a ticket later if needed).
>
> hope it helps...
>
> --
> Cédrick
>
>
>
> VM: unix - i686 - linux-gnu - Pharo0.1 of 16 May 2008 [latest update: #10074]
> Image: Pharo1.0rc1 [Latest update: #10492]
>
> SecurityManager state:
> Restricted: false
> FileAccess: true
> SocketAccess: true
> Working Dir /home/cedrick/Bureau/Poker/prjPoker-02nov
> Trusted Dir /home/cedrick/Bureau/Poker/prjPoker-02nov/secure
> Untrusted Dir /home/cedrick/Bureau/Poker/prjPoker-02nov/My Squeak
>
> TimeProfileBrowser(Object)>>doesNotUnderstand: #allInstVarNames
>     Receiver: a TimeProfileBrowser
>     Arguments and temporary variables:
>         aMessage:     allInstVarNames
>         exception:     MessageNotUnderstood: TimeProfileBrowser>>allInstVarNames
>         resumeValue:     nil
>     Receiver's instance variables:
>         dependents:     a DependentsArray(a SystemWindow(3666) a PluggableListMorph(1080) a...etc...
>         contents:     nil
>         currentCompiledMethod:     nil
>         contentsSymbol:     #source
>         systemOrganizer:     ('AST-Core-Matching')
> ('AST-Core-Nodes')
> ('AST-Core-Parser')
> (...etc...
>         classOrganizer:     nil
>         metaClassOrganizer:     nil
>         systemCategoryListIndex:     0
>         classListIndex:     0
>         messageCategoryListIndex:     0
>         messageListIndex:     2
>         editSelection:     #editMessage
>         metaClassIndicated:     false
>         messageList:     an OrderedCollection(' - 14 tallies, 37 msec.' '' '**Tree**' '----...etc...
>         autoSelectString:     nil
>         growable:     nil
>         selectedClass:     Integer
>         selectedSelector:     #factorial
>         block:     MessageSend(#runBlock:pollingEvery: -> a TimeProfileBrowser)
>         tally:     a MessageTally
>
> SHParserST80>>initializeInstanceVariables
>     Receiver: a SHParserST80
>     Arguments and temporary variables:
>
>     Receiver's instance variables:
>         classOrMetaClass:     a TimeProfileBrowser
>         source:     '"Choose a method to see its implementation
>    
>    
> ****General information...etc...
>         workspace:     nil
>         arguments:     a Dictionary()
>         sourcePosition:     700
>         currentToken:     nil
>         currentTokenFirst:     Character space
>         temporaries:     a Dictionary()
>         instanceVariables:     a Set()
>         errorBlock:     nil
>         currentTokenSourcePosition:     nil
>         blockDepth:     0
>         bracketDepth:     0
>         ranges:     an OrderedCollection(a SHRange)
>         environment:     Smalltalk
>
> SHParserST80>>parse:
>     Receiver: a SHParserST80
>     Arguments and temporary variables:
>         isAMethod:     true
>     Receiver's instance variables:
>         classOrMetaClass:     a TimeProfileBrowser
>         source:     '"Choose a method to see its implementation
>    
>    
> ****General information...etc...
>         workspace:     nil
>         arguments:     a Dictionary()
>         sourcePosition:     700
>         currentToken:     nil
>         currentTokenFirst:     Character space
>         temporaries:     a Dictionary()
>         instanceVariables:     a Set()
>         errorBlock:     nil
>         currentTokenSourcePosition:     nil
>         blockDepth:     0
>         bracketDepth:     0
>         ranges:     an OrderedCollection(a SHRange)
>         environment:     Smalltalk
>
> SHParserST80>>parse
>     Receiver: a SHParserST80
>     Arguments and temporary variables:
>
>     Receiver's instance variables:
>         classOrMetaClass:     a TimeProfileBrowser
>         source:     '"Choose a method to see its implementation
>    
>    
> ****General information...etc...
>         workspace:     nil
>         arguments:     a Dictionary()
>         sourcePosition:     700
>         currentToken:     nil
>         currentTokenFirst:     Character space
>         temporaries:     a Dictionary()
>         instanceVariables:     a Set()
>         errorBlock:     nil
>         currentTokenSourcePosition:     nil
>         blockDepth:     0
>         bracketDepth:     0
>         ranges:     an OrderedCollection(a SHRange)
>         environment:     Smalltalk
>
> SHParserST80>>rangesIn:classOrMetaClass:workspace:environment:
>     Receiver: a SHParserST80
>     Arguments and temporary variables:
>         sourceString:     '"Choose a method to see its implementation
>    
>    
> ****General infor...etc...
>         aBehaviour:     a TimeProfileBrowser
>         aWorkspace:     nil
>         anEnvironmentOrNil:     nil
>     Receiver's instance variables:
>         classOrMetaClass:     a TimeProfileBrowser
>         source:     '"Choose a method to see its implementation
>    
>    
> ****General information...etc...
>         workspace:     nil
>         arguments:     a Dictionary()
>         sourcePosition:     700
>         currentToken:     nil
>         currentTokenFirst:     Character space
>         temporaries:     a Dictionary()
>         instanceVariables:     a Set()
>         errorBlock:     nil
>         currentTokenSourcePosition:     nil
>         blockDepth:     0
>         bracketDepth:     0
>         ranges:     an OrderedCollection(a SHRange)
>         environment:     Smalltalk
>
> SHTextStylerST80>>rangesIn:setWorkspace:
>     Receiver: a SHTextStylerST80
>     Arguments and temporary variables:
>         aText:     a Text for '"Choose a method to see its implementation
>    
>    
> ****General i...etc...
>         aBoolean:     true
>     Receiver's instance variables:
>         sem:     nil
>         backgroundProcess:     nil
>         text:     a Text for '"Choose a method to see its implementation
>    
>    
> ****General in...etc...
>         monitor:     a Monitor
>         view:     a PluggableShoutMorph(625)
>         stylingEnabled:     true
>         classOrMetaClass:     a TimeProfileBrowser
>         workspace:     nil
>         font:     a LogicalFont
>  familyName: DejaVu Sans Mono
>  emphasis: nil
>  pointSize: 9
> ...etc...
>         parser:     a SHParserST80
>         formatAssignments:     true
>         environment:     nil
>         sourceMap:     nil
>         processedSourceMap:     nil
>         pixelHeight:     13.33333333333333
>
> SHTextStylerST80>>privateStyle:
>     Receiver: a SHTextStylerST80
>     Arguments and temporary variables:
>         aText:     a Text for '"Choose a method to see its implementation
> <ParagraphEditor-tallySelection.st><TimeProfileBrowser-selectedMessage.st><TimeProfileBrowser class-helpMessage.st>_______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Profile It - Use of TimeProfiler instead + general information displayed by default

cedreek