On Sun, Mar 18, 2018 at 12:56 AM, Eliot Miranda <[email protected]> wrote:
> Hi Cyril,
>

Hi Eliot,

>
> can you use the profiler (either MessageTally, or better still,
> AndreasSystemProfiler) to get a better understanding?
>
> e.g.
>
>     AndreasSystemProfiler spyOn:
>         [SystemNavigation new browseMethodsWithSourceString:
> 'Method source with it' matchCase: false]
>

I already did it and most of the time is spent in
ZnCharacterReadStream>>nextElement.
This is why I said it was probably linked to the recent changes on
Pharo's streams to use Zinc ones.

I don't have enough knowledge on the streams and time to help more.

Here is the profiler:

 - 132607 tallies, 132646 msec.
**Tree**
--------------------------------
Process: (40s) Morphic UI Process: nil
--------------------------------
99.7% {132298ms} SystemNavigation>>browseMethodsWithSourceString:matchCase:
  99.7% {132239ms} SystemNavigation>>allMethodsWithSourceString:matchCase:
    99.7% {132235ms} ByteString(String)>>displayProgressFrom:to:during:
      99.7% {132235ms}
MorphicUIManager(UIManager)>>displayProgress:from:to:during:
        99.7% {132235ms} Job>>run
          99.7% {132235ms} BlockClosure>>ensure:
            99.7% {132221ms} Job>>run
              99.7% {132219ms} CurrentJob class(DynamicVariable
class)>>value:during:
                99.7% {132219ms} CurrentJob(DynamicVariable)>>value:during:
                  99.7% {132219ms} BlockClosure>>ensure:
                    99.7% {132219ms} CurrentJob(DynamicVariable)>>value:during:
                      99.7% {132219ms} Job>>run
                        99.7% {132219ms} BlockClosure>>cull:
                          99.7% {132219ms}
SystemNavigation>>allMethodsWithSourceString:matchCase:
                            99.7% {132219ms} SystemNavigation>>allBehaviorsDo:
                              94.8% {125787ms} SystemDictionary>>allClassesDo:
                                |94.8% {125787ms} OrderedCollection>>do:
                                |  94.8% {125783ms}
SystemDictionary>>allClassesDo:
                                |    94.8% {125774ms}
SystemNavigation>>allBehaviorsDo:
                                |      94.8% {125759ms}
SystemNavigation>>allMethodsWithSourceString:matchCase:
                                |        88.5% {117424ms}
AColorSelectorMorph class(Behavior)>>selectorsDo:
                                |          |88.5% {117418ms}
MethodDictionary>>keysDo:
                                |          |  88.4% {117317ms}
SystemNavigation>>allMethodsWithSourceString:matchCase:
                                |          |    88.4% {117239ms}
AColorSelectorMorph class(Behavior)>>sourceCodeAt:
                                |          |      88.3% {117157ms}
CompiledMethod>>sourceCode
                                |          |        88.2% {117055ms}
CompiledMethod>>getSourceFromFile
                                |          |          88.2% {117053ms}
BlockClosure>>on:do:
                                |          |            88.2%
{117051ms} CompiledMethod>>getSourceFromFile
                                |          |              88.2%
{117029ms} SourceFileArray>>sourceCodeAt:
                                |          |                88.2%
{117027ms} SourceFileArray>>readStreamAt:ifPresent:ifAbsent:
                                |          |                  88.2%
{117019ms} SourceFileArray>>readStreamAtFileIndex:atPosition:ifPresent:ifAbsent:
                                |          |                    87.9%
{116565ms} SourceFileArray>>sourceCodeAt:
                                |          |
87.8% {116486ms} ChunkReadStream>>next
                                |          |
87.2% {115615ms} ChunkReadStream>>basicNextChunk
                                |          |
85.0% {112685ms} SourceFile>>next
                                |          |
 84.8% {112484ms} ZnCharacterReadStream(ZnEncodedReadStream)>>next
                                |          |
   84.6% {112251ms} ZnCharacterReadStream>>nextElement
                                |          |
     45.5% {60313ms} primitives
                                |          |
     39.1% {51860ms}
ZnUTF8Encoder(ZnCharacterEncoder)>>nextFromStream:
                                |          |
       39.0% {51675ms} ZnUTF8Encoder>>nextCodePointFromStream:
                                |          |
         38.8% {51492ms}
BinaryFileStream(AbstractBinaryFileStream)>>next
                                |          |
           38.1% {50479ms} ByteArray(Collection)>>ifEmpty:ifNotEmpty:
                                |          |
             37.1% {49198ms} primitives
                                |        5.9% {7822ms}
ClassOrganization>>classComment
                                |          5.9% {7822ms}
ClassOrganization>>comment
                                |            5.9% {7822ms} RemoteString>>string
                                |              5.9% {7820ms}
SourceFileArray>>readStreamAtFileIndex:atPosition:ifPresent:ifAbsent:
                                |                5.9% {7779ms}
RemoteString>>string
                                |                  5.9% {7777ms}
ChunkReadStream>>next
                                |                    5.8% {7734ms}
ChunkReadStream>>basicNextChunk
                                |                      5.7% {7535ms}
SourceFile>>next
                                |                        5.7% {7517ms}
ZnCharacterReadStream(ZnEncodedReadStream)>>next
                                |                          5.7%
{7503ms} ZnCharacterReadStream>>nextElement
                                |                            3.0%
{3941ms} primitives
                                |                            2.7%
{3553ms} ZnUTF8Encoder(ZnCharacterEncoder)>>nextFromStream:
                                |                              2.7%
{3547ms} ZnUTF8Encoder>>nextCodePointFromStream:
                                |                                2.7%
{3519ms} BinaryFileStream(AbstractBinaryFileStream)>>next
                                |
2.6% {3446ms} ByteArray(Collection)>>ifEmpty:ifNotEmpty:
                                |
2.5% {3361ms} primitives
                              4.8% {6432ms} SystemDictionary>>allTraitsDo:
                                4.8% {6428ms} OrderedCollection>>do:
                                  4.8% {6428ms} SystemDictionary>>allTraitsDo:
                                    4.8% {6428ms}
SystemNavigation>>allBehaviorsDo:
                                      4.8% {6426ms}
SystemNavigation>>allMethodsWithSourceString:matchCase:
                                        4.8% {6370ms} ClyTraitChild1
classTrait(Behavior)>>selectorsDo:
                                          4.8% {6370ms}
MethodDictionary>>keysDo:
                                            4.8% {6362ms}
SystemNavigation>>allMethodsWithSourceString:matchCase:
                                              4.8% {6356ms}
ClyTraitChild1 classTrait(Behavior)>>sourceCodeAt:
                                                4.8% {6350ms}
CompiledMethod>>sourceCode
                                                  4.8% {6344ms}
CompiledMethod>>getSourceFromFile
                                                    4.8% {6344ms}
BlockClosure>>on:do:
                                                      4.8% {6344ms}
CompiledMethod>>getSourceFromFile
                                                        4.8% {6342ms}
SourceFileArray>>sourceCodeAt:
                                                          4.8%
{6342ms} SourceFileArray>>readStreamAt:ifPresent:ifAbsent:
                                                            4.8%
{6342ms} SourceFileArray>>readStreamAtFileIndex:atPosition:ifPresent:ifAbsent:
                                                              4.7%
{6299ms} SourceFileArray>>sourceCodeAt:
                                                                4.7%
{6292ms} ChunkReadStream>>next
                                                                  4.7%
{6238ms} ChunkReadStream>>basicNextChunk

4.6% {6078ms} SourceFile>>next

4.6% {6063ms} ZnCharacterReadStream(ZnEncodedReadStream)>>next

 4.6% {6055ms} ZnCharacterReadStream>>nextElement

   2.5% {3256ms} primitives

   2.1% {2797ms} ZnUTF8Encoder(ZnCharacterEncoder)>>nextFromStream:

     2.1% {2785ms} ZnUTF8Encoder>>nextCodePointFromStream:

       2.1% {2779ms} BinaryFileStream(AbstractBinaryFileStream)>>next

         2.1% {2727ms} ByteArray(Collection)>>ifEmpty:ifNotEmpty:

           2.0% {2667ms} primitives

**Leaves**
51.6% {68474ms} ZnCharacterReadStream>>nextElement
42.3% {56100ms} ByteArray(Collection)>>ifEmpty:ifNotEmpty:
**Memory**
 old   +0 bytes
 young  -1,076,072 bytes
 used  -1,076,072 bytes
 free  +1,076,072 bytes
**GCs**
 full   0 totalling 0ms (0.0% uptime)
 incr  691 totalling 859ms (1.0% uptime), avg 1.0ms
 tenures  0
 root table 0 overflows

>
> --
> _,,,^..^,,,_
> best, Eliot


-- 
Cyril Ferlicot
https://ferlicot.fr

Reply via email to