[Glass] Profiling beyond ExecBlock >> valueWithPossibleArguments: ?

Dale Henrichs via Glass glass at lists.gemtalksystems.com
Wed Feb 3 12:18:52 PST 2016


if you use `reportDownTo: 1` you will get more interesting information:

| profMon |
   profMon := ProfMonitorTree new.
   profMon interval: 10.
   profMon startMonitoring.
   [ 100 timesRepeat: [ Transcript show: 'hola' ] ]
     valueWithPossibleArguments: #().
   profMon
     stopMonitoring;
     gatherResults.
   profMon reportDownTo: 1

'================
STATISTICAL SAMPLING RESULTS
elapsed CPU time:    143 ms
monitoring interval: 10.0 ms

  tally       %   class and method name
------   -----   --------------------------------------
      1   25.00   executed code
      1   25.00   Object                    >> 
_doesNotUnderstand:args:envId:reason:
      1   25.00   executed code
      1   25.00   KeyValueDictionary        >> keysAndValuesDo:
      0    0.00   19 other methods
      4  100.00   Total


================
STATISTICAL STACK SAMPLING RESULTS
elapsed CPU time:    143 ms
monitoring interval: 10.0 ms

  total       %   class and method name
------   -----   --------------------------------------
      4  100.00   GsNMethod class           >> _gsReturnToC
      2   50.00   ExecBlock                 >> 
value:value:value:value:value:
      2   50.00   block in TDClientSourceElementBuilder >> menuActionBlock
      2   50.00   TDWindowBuilder           >> 
handleMenuActions:listElement:actionArg:
      2   50.00   TDClientSourceElementBuilder >> 
printItMenuAction:selectedText:
      2   50.00   TDClientSourceElementBuilder >> evaluateString:
      2   50.00   CharacterCollection       >> 
evaluateIn:symbolList:literalVars:
      2   50.00   executed code
      2   50.00   ExecBlock                 >> valueWithPossibleArguments:
      2   50.00   block in executed code
      2   50.00   TranscriptProxy class     >> show:
      2   50.00   KeyValueDictionary        >> keysAndValuesDo:
      1   25.00   executed code
      1   25.00   Object                    >> 
_doesNotUnderstand:args:envId:reason:
      1   25.00   executed code
      1   25.00   ObjectLogEntry class      >> transcript:object:
      1   25.00   Object class              >> new
      1   25.00   ObjectLogEntry            >> initialize
      1   25.00   System class              >> gemVersionReport
      1   25.00   System class              >> _serverVersionReport:
      1   25.00   block in System class     >> _serverVersionReport:
      1   25.00   StringKeyValueDictionary  >> at:put:
      1   25.00   KeyValueDictionary        >> rebuildTable:
      4  100.00   Total


================
STATISTICAL METHOD SENDERS RESULTS
elapsed CPU time:    143 ms
monitoring interval: 10.0 ms

      %       %                     Parent
   self  total   total  local  Method
   Time   Time      ms    %         Child
------ ------  ------  -----  -----------

=    0.0  100.0   143.0    0.0  GsNMethod class >> _gsReturnToC
                    35.8   25.0       executed code
                    35.8   25.0       executed code
                    71.5   50.0       ExecBlock    >> 
value:value:value:value:value:
-----------------------------------------------------

                    71.5  100.0       GsNMethod class >> _gsReturnToC
=    0.0   50.0    71.5    0.0  ExecBlock    >> 
value:value:value:value:value:
                    71.5  100.0       block in 
TDClientSourceElementBuilder >> menuActionBlock
-----------------------------------------------------

                    71.5  100.0       ExecBlock    >> 
value:value:value:value:value:
=    0.0   50.0    71.5    0.0  block in TDClientSourceElementBuilder >> 
menuActionBlock
                    71.5  100.0       TDWindowBuilder >> 
handleMenuActions:listElement:actionArg:
-----------------------------------------------------

                    71.5  100.0       block in 
TDClientSourceElementBuilder >> menuActionBlock
=    0.0   50.0    71.5    0.0  TDWindowBuilder >> 
handleMenuActions:listElement:actionArg:
                    71.5  100.0       TDClientSourceElementBuilder >> 
printItMenuAction:selectedText:
-----------------------------------------------------

                    71.5  100.0       TDWindowBuilder >> 
handleMenuActions:listElement:actionArg:
=    0.0   50.0    71.5    0.0  TDClientSourceElementBuilder >> 
printItMenuAction:selectedText:
                    71.5  100.0       TDClientSourceElementBuilder >> 
evaluateString:
-----------------------------------------------------

                    71.5  100.0       TDClientSourceElementBuilder >> 
printItMenuAction:selectedText:
=    0.0   50.0    71.5    0.0  TDClientSourceElementBuilder >> 
evaluateString:
                    71.5  100.0       CharacterCollection >> 
evaluateIn:symbolList:literalVars:
-----------------------------------------------------

                    71.5  100.0       TDClientSourceElementBuilder >> 
evaluateString:
=    0.0   50.0    71.5    0.0  CharacterCollection >> 
evaluateIn:symbolList:literalVars:
                    71.5  100.0       executed code
-----------------------------------------------------

                    71.5  100.0       CharacterCollection >> 
evaluateIn:symbolList:literalVars:
=    0.0   50.0    71.5    0.0  executed code
                    71.5  100.0       ExecBlock    >> 
valueWithPossibleArguments:
-----------------------------------------------------

                    71.5  100.0       executed code
=    0.0   50.0    71.5    0.0  ExecBlock    >> valueWithPossibleArguments:
                    71.5  100.0       block in executed code
-----------------------------------------------------

                    71.5  100.0       ExecBlock    >> 
valueWithPossibleArguments:
=    0.0   50.0    71.5    0.0  block in executed code
                    71.5  100.0       TranscriptProxy class >> show:
-----------------------------------------------------

                    71.5  100.0       block in executed code
=    0.0   50.0    71.5    0.0  TranscriptProxy class >> show:
                    35.8   50.0       Object       >> 
_doesNotUnderstand:args:envId:reason:
                    35.8   50.0       ObjectLogEntry class >> 
transcript:object:
-----------------------------------------------------

                    35.8   50.0       System class >> _serverVersionReport:
                    35.8   50.0       KeyValueDictionary >> rebuildTable:
=   25.0   50.0    71.5   50.0  KeyValueDictionary >> keysAndValuesDo:
                    35.8   50.0       block in System class >> 
_serverVersionReport:
-----------------------------------------------------

                    35.8  100.0       GsNMethod class >> _gsReturnToC
=   25.0   25.0    35.8  100.0  executed code
-----------------------------------------------------

                    35.8  100.0       TranscriptProxy class >> show:
=   25.0   25.0    35.8  100.0  Object       >> 
_doesNotUnderstand:args:envId:reason:
-----------------------------------------------------

                    35.8  100.0       GsNMethod class >> _gsReturnToC
=   25.0   25.0    35.8  100.0  executed code
-----------------------------------------------------

                    35.8  100.0       TranscriptProxy class >> show:
=    0.0   25.0    35.8    0.0  ObjectLogEntry class >> transcript:object:
                    35.8  100.0       Object class >> new
-----------------------------------------------------

                    35.8  100.0       ObjectLogEntry class >> 
transcript:object:
=    0.0   25.0    35.8    0.0  Object class >> new
                    35.8  100.0       ObjectLogEntry >> initialize
-----------------------------------------------------

                    35.8  100.0       Object class >> new
=    0.0   25.0    35.8    0.0  ObjectLogEntry >> initialize
                    35.8  100.0       System class >> gemVersionReport
-----------------------------------------------------

                    35.8  100.0       ObjectLogEntry >> initialize
=    0.0   25.0    35.8    0.0  System class >> gemVersionReport
                    35.8  100.0       System class >> _serverVersionReport:
-----------------------------------------------------

                    35.8  100.0       System class >> gemVersionReport
=    0.0   25.0    35.8    0.0  System class >> _serverVersionReport:
                    35.8  100.0       KeyValueDictionary >> keysAndValuesDo:
-----------------------------------------------------

                    35.8  100.0       KeyValueDictionary >> keysAndValuesDo:
=    0.0   25.0    35.8    0.0  block in System class >> 
_serverVersionReport:
                    35.8  100.0       StringKeyValueDictionary >> at:put:
-----------------------------------------------------

                    35.8  100.0       block in System class >> 
_serverVersionReport:
=    0.0   25.0    35.8    0.0  StringKeyValueDictionary >> at:put:
                    35.8  100.0       KeyValueDictionary >> rebuildTable:
-----------------------------------------------------

                    35.8  100.0       StringKeyValueDictionary >> at:put:
=    0.0   25.0    35.8    0.0  KeyValueDictionary >> rebuildTable:
                    35.8  100.0       KeyValueDictionary >> keysAndValuesDo:
-----------------------------------------------------




================
STACK SAMPLING TREE RESULTS
elapsed CPU time:    143 ms
monitoring interval: 10.0 ms

  100.0% (1) executed code        [UndefinedObject]
  100.0% (1) executed code        [UndefinedObject]
  100.0% (2) ExecBlock            >> value:value:value:value:value:
    100.0% (2) block in TDClientSourceElementBuilder >> menuActionBlock 
[ExecBlock]
       100.0% (2) TDWindowBuilder      >> 
handleMenuActions:listElement:actionArg: [TDWorkspaceClientElementBuilder]
          100.0% (2) TDClientSourceElementBuilder >> 
printItMenuAction:selectedText: [TDWorkspaceClientElementBuilder]
             100.0% (2) TDClientSourceElementBuilder >> evaluateString: 
[TDWorkspaceClientElementBuilder]
                100.0% (2) CharacterCollection  >> 
evaluateIn:symbolList:literalVars: [String]
                   100.0% (2) executed code        [UndefinedObject]
                      100.0% (2) ExecBlock            >> 
valueWithPossibleArguments: [ExecBlock0]
                         100.0% (2) block in executed code [ExecBlock0]
                            100.0% (2) TranscriptProxy class >> show:
                                50.0% (1) ObjectLogEntry class >> 
transcript:object:
                                 |  50.0% (1) Object class >> new 
[ObjectLogEntry class]
                                 |     50.0% (1) ObjectLogEntry >> 
initialize
                                 |        50.0% (1) System class         
 >> gemVersionReport
                                 |           50.0% (1) System 
class         >> _serverVersionReport:
                                 |              50.0% (1) 
KeyValueDictionary   >> keysAndValuesDo: [StringKeyValueDictionary]
                                 |                 50.0% (1) block in 
System class >> _serverVersionReport: [ExecBlock2]
                                 |                    50.0% (1) 
StringKeyValueDictionary >> at:put:
                                 |                       50.0% (1) 
KeyValueDictionary   >> rebuildTable: [StringKeyValueDictionary]
                                 |                          50.0% (1) 
KeyValueDictionary   >> keysAndValuesDo: [StringKeyValueDictionary]
                                50.0% (1) Object >> 
_doesNotUnderstand:args:envId:reason: [ClientForwarder]


'

On 02/03/2016 04:08 AM, Mariano Martinez Peck via Glass wrote:
> | profMon |
> profMon := ProfMonitorTree new.
> profMon interval: 10.
>  profMon startMonitoring.
>
> *[1000 timesRepeat: [Transcript show: 'hola']] 
> valueWithPossibleArguments: #().*
>
> profMon
>         stopMonitoring;
>         gatherResults.
>
> (FileStream
>     forceNewFileNamed:
>       '/Users/mariano/gemstone'
>         , DateAndTime now printString faAsFilename)
>     nextPutAll: (profMon reportDownTo: 10);
>     cr

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20160203/c2cbc615/attachment-0001.html>


More information about the Glass mailing list