[squeak-dev] Re: browsing method speed

Frank Shearar frank.shearar at gmail.com
Sun Jan 20 18:23:25 UTC 2013


On 20 January 2013 18:20, Vaidotas Didžbalis <vaidasd at gmail.com> wrote:
> Hello,
> Sorry regarding previous email, accidentally hit Send.
> Just wanted to report that changing focus while browsing implementers,
> degraded a lot through releases. Checked 3.6 (instant), 3.8.1 (
> slower, but ok, it was first release with unicode support AFAIK),  4.1
> is so-so and 4.4 it takes ~1sec to look implementer on Cog.

Ah, I was about to ask if you had any numbers :)

I tried hopping between methods, and couldn't really see any
difference in speed between 4.3 and 4.4.

What I _did_ find was that choosing a method by clicking on it was
noticeably slower ( than choosing a new method by using the up or down
arrows, which is quite interesting.

frank

> On 4.4, Cog selected profiled gives:
>
>  - 21614 tallies, 21630 msec.
>
> **Tree**
> --------------------------------
> Process: other processes
> --------------------------------
> 35.5% {7689ms} ProcessorScheduler class>>idleProcess
> 11.6% {2513ms} EventSensor>>eventTickler
>   11.6% {2512ms} Delay>>wait
> --------------------------------
> Process: (40s) 49125: nil
> --------------------------------
> 52.6% {11381ms} WorldState>>doOneCycleFor:
>   50.0% {10815ms} WorldState>>doOneCycleNowFor:
>     |48.4% {10469ms} HandMorph>>processEvents
>     |  |48.4% {10467ms} HandMorph>>handleEvent:
>     |  |  48.3% {10454ms} HandMorph>>sendKeyboardEvent:
>     |  |    48.3% {10454ms} HandMorph>>sendEvent:focus:clear:
>     |  |      48.3% {10454ms} HandMorph>>sendFocusEvent:to:clear:
>     |  |        48.3% {10454ms} PluggableListMorphPlus(Morph)>>handleFocusEvent:
>     |  |          48.3% {10454ms} PluggableListMorphPlus(Morph)>>handleEvent:
>     |  |            48.3% {10454ms} KeyboardEvent>>sentTo:
>     |  |              48.3% {10454ms}
> PluggableListMorphPlus(Morph)>>handleKeystroke:
>     |  |                48.3% {10454ms}
> PluggableListMorphPlus(PluggableListMorph)>>keyStroke:
>     |  |                  48.3% {10454ms}
> PluggableListMorphPlus(PluggableListMorph)>>specialKeyPressed:
>     |  |                    48.3% {10454ms}
> PluggableListMorphPlus(PluggableListMorph)>>changeModelSelection:
>     |  |                      48.3% {10454ms} MessageSet>>messageListIndex:
>     |  |                        29.9% {6474ms}
> MessageSet(CodeHolder)>>contentsChanged
>     |  |                          |18.5% {4001ms}
> MessageSet(Object)>>contentsChanged
>     |  |                          |  |18.5% {4001ms}
> MessageSet(Object)>>changed:
>     |  |                          |  |  18.5% {3997ms}
> PluggableTextMorphPlus>>update:
>     |  |                          |  |    18.5% {3997ms}
> PluggableTextMorphPlus(PluggableTextMorph)>>update:
>     |  |                          |  |      18.4% {3977ms}
> PluggableTextMorphPlus(PluggableTextMorph)>>getText
>     |  |                          |  |        18.4% {3977ms}
> MessageSet>>contents
>     |  |                          |  |          18.4% {3977ms}
> MessageSet(CodeHolder)>>editContents
>     |  |                          |  |            18.4% {3977ms}
> MessageSet>>selectedMessage
>     |  |                          |  |              9.6% {2087ms}
> ActionSequence class(Behavior)>>sourceMethodAt:ifAbsent:
>     |  |                          |  |                |9.6% {2087ms}
> ActionSequence class(Behavior)>>sourceCodeAt:ifAbsent:
>     |  |                          |  |                |  9.6% {2087ms}
> CompiledMethod>>getSourceFor:in:
>     |  |                          |  |                |    9.6%
> {2087ms} CompiledMethod>>getSourceFromFileAt:
>     |  |                          |  |                |      9.6%
> {2087ms} RemoteString>>text
>     |  |                          |  |                |        9.6%
> {2087ms} CurrentReadOnlySourceFiles class>>at:
>     |  |                          |  |                |          9.6%
> {2087ms} CurrentReadOnlySourceFiles class(Exception class)>>signal
>     |  |                          |  |                |
> 9.6% {2087ms} CurrentReadOnlySourceFiles(Exception)>>signal
>     |  |                          |  |                |
> 9.6% {2087ms} MethodContext(ContextPart)>>handleSignal:
>     |  |                          |  |                |
> 9.6% {2086ms} MethodContext(ContextPart)>>handleSignal:
>     |  |                          |  |                |
>   9.6% {2086ms} MethodContext(ContextPart)>>handleSignal:
>     |  |                          |  |                |
>     9.6% {2086ms} UndefinedObject>>handleSignal:
>     |  |                          |  |                |
>       9.6% {2086ms} CurrentReadOnlySourceFiles>>defaultAction
>     |  |                          |  |                |
>         9.6% {2086ms}
> MultiByteFileStream(StandardFileStream)>>readOnlyCopy
>     |  |                          |  |                |
>           9.6% {2086ms} MultiByteFileStream class(StandardFileStream
> class)>>readOnlyFileNamed:
>     |  |                          |  |                |
>             9.6% {2086ms} MultiByteFileStream>>open:forWrite:
>     |  |                          |  |                |
>               9.6% {2086ms}
> MultiByteFileStream(StandardFileStream)>>open:forWrite:
>     |  |                          |  |                |
>                 9.6% {2084ms} primitives
>     |  |                          |  |              8.7% {1889ms}
> MessageSet(CodeHolder)>>sourceStringPrettifiedAndDiffed
>     |  |                          |  |                8.7% {1887ms}
> ActionSequence class(Behavior)>>ultimateSourceCodeAt:ifAbsent:
>     |  |                          |  |                  8.7% {1887ms}
> ActionSequence class(Behavior)>>sourceCodeAt:ifAbsent:
>     |  |                          |  |                    8.7%
> {1887ms} CompiledMethod>>getSourceFor:in:
>     |  |                          |  |                      8.7%
> {1887ms} CompiledMethod>>getSourceFromFileAt:
>     |  |                          |  |                        8.7%
> {1887ms} RemoteString>>text
>     |  |                          |  |                          8.7%
> {1886ms} CurrentReadOnlySourceFiles class>>at:
>     |  |                          |  |                            8.7%
> {1886ms} CurrentReadOnlySourceFiles class(Exception class)>>signal
>     |  |                          |  |
> 8.7% {1886ms} CurrentReadOnlySourceFiles(Exception)>>signal
>     |  |                          |  |
> 8.7% {1886ms} MethodContext(ContextPart)>>handleSignal:
>     |  |                          |  |
>  8.7% {1886ms} MethodContext(ContextPart)>>handleSignal:
>     |  |                          |  |
>    8.7% {1886ms} MethodContext(ContextPart)>>handleSignal:
>     |  |                          |  |
>      8.7% {1886ms} UndefinedObject>>handleSignal:
>     |  |                          |  |
>        8.7% {1886ms} CurrentReadOnlySourceFiles>>defaultAction
>     |  |                          |  |
>          8.7% {1886ms}
> MultiByteFileStream(StandardFileStream)>>readOnlyCopy
>     |  |                          |  |
>            8.7% {1886ms} MultiByteFileStream class(StandardFileStream
> class)>>readOnlyFileNamed:
>     |  |                          |  |
>              8.7% {1886ms} MultiByteFileStream>>open:forWrite:
>     |  |                          |  |
>                8.7% {1885ms}
> MultiByteFileStream(StandardFileStream)>>open:forWrite:
>     |  |                          |11.4% {2473ms} MessageSet(Object)>>changed:
>     |  |                          |  11.4% {2470ms}
> PluggableTextMorphPlus>>update:
>     |  |                          |    11.4% {2470ms}
> PluggableTextMorphPlus(PluggableTextMorph)>>update:
>     |  |                          |      11.4% {2457ms}
> PluggableTextMorphPlus(PluggableTextMorph)>>getText
>     |  |                          |        11.4% {2457ms}
> MessageSet(CodeHolder)>>annotation
>     |  |                          |          11.4% {2456ms}
> MessageSet(CodeHolder)>>annotationForSelector:ofClass:
>     |  |                          |            10.6% {2301ms}
> MessageSet(StringHolder)>>timeStamp
>     |  |                          |              10.6% {2301ms}
> Utilities class>>timeStampForMethod:
>     |  |                          |                10.6% {2301ms}
> CompiledMethod>>timeStamp
>     |  |                          |                  10.6% {2297ms}
> CompiledMethod>>preamble
>     |  |                          |                    10.6% {2296ms}
> CurrentReadOnlySourceFiles class>>at:
>     |  |                          |                      10.6%
> {2296ms} CurrentReadOnlySourceFiles class(Exception class)>>signal
>     |  |                          |                        10.6%
> {2296ms} CurrentReadOnlySourceFiles(Exception)>>signal
>     |  |                          |                          10.6%
> {2296ms} MethodContext(ContextPart)>>handleSignal:
>     |  |                          |                            10.6%
> {2296ms} MethodContext(ContextPart)>>handleSignal:
>     |  |                          |                              10.6%
> {2296ms} UndefinedObject>>handleSignal:
>     |  |                          |
> 10.6% {2296ms} CurrentReadOnlySourceFiles>>defaultAction
>     |  |                          |
> 10.6% {2296ms} MultiByteFileStream(StandardFileStream)>>readOnlyCopy
>     |  |                          |
> 10.6% {2296ms} MultiByteFileStream class(StandardFileStream
> class)>>readOnlyFileNamed:
>     |  |                          |
>   10.6% {2296ms} MultiByteFileStream>>open:forWrite:
>     |  |                          |
>     10.6% {2296ms}
> MultiByteFileStream(StandardFileStream)>>open:forWrite:
>     |  |                          |
>       10.6% {2295ms} primitives
>     |  |                        18.4% {3970ms} MessageSet>>selectedMessage
>     |  |                          10.1% {2195ms} ActionSequence
> class(Behavior)>>sourceMethodAt:ifAbsent:
>     |  |                            |10.1% {2193ms} ActionSequence
> class(Behavior)>>sourceCodeAt:ifAbsent:
>     |  |                            |  10.1% {2193ms}
> CompiledMethod>>getSourceFor:in:
>     |  |                            |    10.1% {2193ms}
> CompiledMethod>>getSourceFromFileAt:
>     |  |                            |      10.1% {2193ms} RemoteString>>text
>     |  |                            |        9.5% {2057ms}
> CurrentReadOnlySourceFiles class>>at:
>     |  |                            |          9.5% {2056ms}
> CurrentReadOnlySourceFiles class(Exception class)>>signal
>     |  |                            |            9.5% {2056ms}
> CurrentReadOnlySourceFiles(Exception)>>signal
>     |  |                            |              9.5% {2056ms}
> MethodContext(ContextPart)>>handleSignal:
>     |  |                            |                9.5% {2056ms}
> MethodContext(ContextPart)>>handleSignal:
>     |  |                            |                  9.5% {2056ms}
> MethodContext(ContextPart)>>handleSignal:
>     |  |                            |                    9.5% {2056ms}
> UndefinedObject>>handleSignal:
>     |  |                            |                      9.5%
> {2056ms} CurrentReadOnlySourceFiles>>defaultAction
>     |  |                            |                        9.5%
> {2056ms} MultiByteFileStream(StandardFileStream)>>readOnlyCopy
>     |  |                            |                          9.5%
> {2056ms} MultiByteFileStream class(StandardFileStream
> class)>>readOnlyFileNamed:
>     |  |                            |                            9.5%
> {2056ms} MultiByteFileStream>>open:forWrite:
>     |  |                            |
> 9.5% {2056ms} MultiByteFileStream(StandardFileStream)>>open:forWrite:
>     |  |                          8.2% {1774ms}
> MessageSet(CodeHolder)>>sourceStringPrettifiedAndDiffed
>     |  |                            8.2% {1773ms} ActionSequence
> class(Behavior)>>ultimateSourceCodeAt:ifAbsent:
>     |  |                              8.2% {1773ms} ActionSequence
> class(Behavior)>>sourceCodeAt:ifAbsent:
>     |  |                                8.2% {1773ms}
> CompiledMethod>>getSourceFor:in:
>     |  |                                  8.2% {1772ms}
> CompiledMethod>>getSourceFromFileAt:
>     |  |                                    8.2% {1772ms} RemoteString>>text
>     |  |                                      8.2% {1771ms}
> CurrentReadOnlySourceFiles class>>at:
>     |  |                                        8.2% {1771ms}
> CurrentReadOnlySourceFiles class(Exception class)>>signal
>     |  |                                          8.2% {1771ms}
> CurrentReadOnlySourceFiles(Exception)>>signal
>     |  |                                            8.2% {1771ms}
> MethodContext(ContextPart)>>handleSignal:
>     |  |                                              8.2% {1771ms}
> MethodContext(ContextPart)>>handleSignal:
>     |  |                                                8.2% {1771ms}
> MethodContext(ContextPart)>>handleSignal:
>     |  |                                                  8.2%
> {1771ms} UndefinedObject>>handleSignal:
>     |  |                                                    8.2%
> {1771ms} CurrentReadOnlySourceFiles>>defaultAction
>     |  |                                                      8.2%
> {1771ms} MultiByteFileStream(StandardFileStream)>>readOnlyCopy
>     |  |                                                        8.2%
> {1771ms} MultiByteFileStream class(StandardFileStream
> class)>>readOnlyFileNamed:
>     |  |                                                          8.2%
> {1771ms} MultiByteFileStream>>open:forWrite:
>     |  |
> 8.2% {1771ms} MultiByteFileStream(StandardFileStream)>>open:forWrite:
>     |  |
> 8.2% {1770ms} primitives
>     |1.6% {343ms} WorldState>>displayWorldSafely:
>     |  1.6% {343ms} PasteUpMorph>>displayWorld
>     |    1.6% {343ms} PasteUpMorph>>privateOuterDisplayWorld
>     |      1.6% {343ms} WorldState>>displayWorld:submorphs:
>     |        1.5% {315ms} WorldState>>drawWorld:submorphs:invalidAreasOn:
>     |          1.4% {295ms} FormCanvas(Canvas)>>fullDrawMorph:
>     |            1.4% {295ms} FormCanvas(Canvas)>>fullDraw:
>     |              1.4% {295ms} DockingBarMorph(Morph)>>fullDrawOn:
>   2.6% {566ms} WorldState>>interCyclePause:
>     2.6% {566ms} Delay>>wait
>       2.6% {565ms} primitives
>
> **Leaves**
> 46.6% {10089ms} MultiByteFileStream(StandardFileStream)>>open:forWrite:
> 35.6% {7693ms} ProcessorScheduler class>>idleProcess
> 14.2% {3077ms} Delay>>wait
>
> **Memory**
>         old                     +84,176 bytes
>         young           -1,132,448 bytes
>         used            -1,048,272 bytes
>         free            +1,048,272 bytes
>
> **GCs**
>         full                    0 totalling 0 ms (0% uptime)
>         incr                    28 totalling 44 ms (0.2% uptime), avg 1.6 ms
>         tenures         1 (avg 28 GCs/tenure)
>         root table      0 overflows
>
> Vaidotas.
>


More information about the Squeak-dev mailing list