[Pharo-project] transcript slowed down by closure rollback?
When I compare Time millisecondsToRun: [1 to: 1000 do: [:i | Transcript show: i printString ; cr]] in 10195 -> 2713 ms and Time millisecondsToRun: [1 to: 1000 do: [:i | Transcript show: i printString ; cr]] in 10296cl -> 5841 So may be we rolled back some changes I harvested from igor. Igor do you remember? Stef
2009/5/3 Stéphane Ducasse <stephane.ducasse@inria.fr>:
When I compare
Time millisecondsToRun: [1 to: 1000 do: [:i | Transcript show: i printString ; cr]] in 10195 -> 2713 ms and
 Time millisecondsToRun: [1 to: 1000 do: [:i | Transcript show: i printString ; cr]] in 10296cl -> 5841
So may be we rolled back some changes I harvested from igor. Igor do you remember?
I remember that you writing a thread-safe transcript. But you didn't tell, if its already in Pharo, or still under development. The only change which i did for Transcript is following: http://bugs.squeak.org/view.php?id=7033
Stef
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Best regards, Igor Stasenko AKA sig.
Excellent this was the one I was looking for. Stef On May 3, 2009, at 9:08 PM, Igor Stasenko wrote:
2009/5/3 Stéphane Ducasse <stephane.ducasse@inria.fr>:
When I compare
Time millisecondsToRun: [1 to: 1000 do: [:i | Transcript show: i printString ; cr]] in 10195 -> 2713 ms and
Time millisecondsToRun: [1 to: 1000 do: [:i | Transcript show: i printString ; cr]] in 10296cl -> 5841
So may be we rolled back some changes I harvested from igor. Igor do you remember?
I remember that you writing a thread-safe transcript. But you didn't tell, if its already in Pharo, or still under development.
The only change which i did for Transcript is following: http://bugs.squeak.org/view.php?id=7033
Stef
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Best regards, Igor Stasenko AKA sig.
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Still even with your speedup loaded I get 6534 ms in 10296cl :( Stef On May 3, 2009, at 9:08 PM, Igor Stasenko wrote:
2009/5/3 Stéphane Ducasse <stephane.ducasse@inria.fr>:
When I compare
Time millisecondsToRun: [1 to: 1000 do: [:i | Transcript show: i printString ; cr]] in 10195 -> 2713 ms and
Time millisecondsToRun: [1 to: 1000 do: [:i | Transcript show: i printString ; cr]] in 10296cl -> 5841
So may be we rolled back some changes I harvested from igor. Igor do you remember?
I remember that you writing a thread-safe transcript. But you didn't tell, if its already in Pharo, or still under development.
The only change which i did for Transcript is following: http://bugs.squeak.org/view.php?id=7033
Stef
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Best regards, Igor Stasenko AKA sig.
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
2009/5/3 Stéphane Ducasse <stephane.ducasse@inria.fr>:
Still even with your speedup loaded I get 6534 ms in 10296cl :(
Is transcript using the old TextMorph, or its using a Shout text morph. It can be possible that its using a different route for updating a window contents, so given fix simply doesn't affects it. Try debug Transcript show:, and see if its trying to update the morph immediately. My change were for TextMorph to not update contents immediately but rather on regular World update cycle.
Stef
On May 3, 2009, at 9:08 PM, Igor Stasenko wrote:
2009/5/3 Stéphane Ducasse <stephane.ducasse@inria.fr>:
When I compare
Time millisecondsToRun: [1 to: 1000 do: [:i | Transcript show: i printString ; cr]] in 10195 -> 2713 ms and
 Time millisecondsToRun: [1 to: 1000 do: [:i | Transcript show: i printString ; cr]] in 10296cl -> 5841
So may be we rolled back some changes I harvested from igor. Igor do you remember?
I remember that you writing a thread-safe transcript. But you didn't tell, if its already in Pharo, or still under development.
The only change which i did for Transcript is following: http://bugs.squeak.org/view.php?id=7033
Stef
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Best regards, Igor Stasenko AKA sig.
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Best regards, Igor Stasenko AKA sig.
On May 3, 2009, at 9:18 PM, Igor Stasenko wrote:
2009/5/3 Stéphane Ducasse <stephane.ducasse@inria.fr>:
Still even with your speedup loaded I get 6534 ms in 10296cl :(
Is transcript using the old TextMorph, or its using a Shout text morph. It can be possible that its using a different route for updating a window contents, so given fix simply doesn't affects it.
Try debug Transcript show:, and see if its trying to update the morph immediately. My change were for TextMorph to not update contents immediately but rather on regular World update cycle.
Yes I saw that. But apparently the fix or its spirit) was already in: there is no refreshWorld anymore Stef
Using MessageTally spyOn:, you can see most time is spent in TextMorphCommandHistory. I'm not convinced how usefull a complete undo history can be in the Transcript... Nicolas 2009/5/3 Stéphane Ducasse <stephane.ducasse@inria.fr>:
When I compare
Time millisecondsToRun: [1 to: 1000 do: [:i | Transcript show: i printString ; cr]] in 10195 -> 2713 ms and
Time millisecondsToRun: [1 to: 1000 do: [:i | Transcript show: i printString ; cr]] in 10296cl -> 5841
So may be we rolled back some changes I harvested from igor. Igor do you remember?
Stef
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Strange I cannot reproduce my benchmarh behavior. May be I had two transcript open, would be idiot but why not. in 10297 MessageTally spyOn: [1 to: 1000 do: [:i | Transcript show: i printString ;cr]] -> 1934 ms and in 10195 -> 1850 now with [....] timeToRun I get 2434 ms in 10297 and 2123 in 10195 But I do not now have TextMorphCommandHistory referenced at all Something like that - 1831 tallies, 1831 msec. **Tree** 100.0% {1831ms} TranscriptStream>>show: 100.0% {1831ms} TranscriptStream>>endEntry 99.8% {1827ms} TranscriptStream(Object)>>changed: 99.8% {1827ms} PluggableTextMorph>>update: 54.7% {1002ms} PluggableTextMorph>>handleEdit: |41.5% {760ms} TextMorphForEditView(TextMorph)>>handleEdit: | |37.1% {679ms} TextMorphForEditView>>updateFromParagraph | | |29.8% {546ms} PluggableTextMorph(ScrollPane)>>setScrollDeltas | | | |15.9% {291ms} PluggableTextMorph(ScrollPane)>>hideOrShowScrollBars | | | | |7.2% {132ms} PluggableTextMorph(ScrollPane)>>resizeScrollBars | | | | | |4.8% {88ms} PluggableTextMorph(ScrollPane)>>hResizeScrollBar | | | | | | |3.7% {68ms} PluggableTextMorph(ScrollPane)>>hScrollBarWidth | | | | | | | 3.1% {57ms} PluggableTextMorph(ScrollPane)>>vIsScrollbarNeeded | | | | | | | 3.1% {57ms} PluggableTextMorph(ScrollPane)>>vIsScrollable | | | | | | | 2.7% {49ms} PluggableTextMorph(ScrollPane)>>vLeftoverScrollRange | | | | | | | 2.1% {38ms} PluggableTextMorph(ScrollPane)>>vScrollBarHeight | | | | | | | 2.1% {38ms} PluggableTextMorph(ScrollPane)>>hIsScrollbarNeeded | | | | | |2.3% {42ms} PluggableTextMorph(ScrollPane)>>vResizeScrollBar | | | | |4.5% {82ms} PluggableTextMorph(ScrollPane)>>vHideOrShowScrollBar | | | | | |4.1% {75ms} PluggableTextMorph(ScrollPane)>>vIsScrollbarNeeded | | | | | | 3.7% {68ms} PluggableTextMorph(ScrollPane)>>vIsScrollable | | | | | | 3.1% {57ms} PluggableTextMorph(ScrollPane)>>vLeftoverScrollRange | | | | | | 2.2% {40ms} PluggableTextMorph(ScrollPane)>>vScrollBarHeight | | | | | | 2.2% {40ms} PluggableTextMorph(ScrollPane)>>hIsScrollbarNeeded | | | | |3.9% {71ms} PluggableTextMorph(ScrollPane)>>hHideOrShowScrollBar | | | | | 2.2% {40ms} PluggableTextMorph(ScrollPane)>>hHideScrollBar | | | |13.7% {251ms} PluggableTextMorph(ScrollPane)>>vSetScrollDelta | | | | 6.1% {112ms} ScrollBar>>setValue: | | | | |6.1% {112ms} ScrollBar(Slider)>>setValue: | | | | | 4.9% {90ms} PluggableTextMorph(ScrollPane)>>vScrollBarValue: | | | | | 2.5% {46ms} PluggableTextMorph(ScrollPane)>>vLeftoverScrollRange | | | | | 2.2% {40ms} TransformMorph>>offset: | | | | 2.8% {51ms} PluggableTextMorph(ScrollPane)>>vLeftoverScrollRange | | | | 2.2% {40ms} PluggableTextMorph(ScrollPane)>>vScrollBarHeight | | | | 2.1% {38ms} PluggableTextMorph(ScrollPane)>>hIsScrollbarNeeded | | |7.4% {135ms} TextMorphForEditView(TextMorph)>>updateFromParagraph | | | 6.8% {125ms} TextMorphForEditView(TextMorph)>>fit | | | 4.4% {81ms} TextMorphForEditView(Morph)>>extent: | | | |4.0% {73ms} TextMorphForEditView(Morph)>>changed | | | | 3.9% {71ms} TextMorphForEditView(Morph)>>invalidRect: | | | | 3.9% {71ms} TextMorphForEditView(Morph)>>invalidRect:from: | | | | 3.9% {71ms} TransformMorph>>invalidRect:from: | | | | 2.2% {40ms} TransformMorph(Morph)>>invalidRect:from: | | | 2.2% {40ms} TextMorphForEditView(Morph)>>changed | | | 2.2% {40ms} TextMorphForEditView(Morph)>>invalidRect: | | | 2.1% {38ms} TextMorphForEditView(Morph)>>invalidRect:from: | | | 2.1% {38ms} TransformMorph>>invalidRect:from: | |4.4% {81ms} TextMorphForEditView(TextMorph)>>selectionChanged | | 3.7% {68ms} TextMorphForEditView(Morph)>>invalidRect: | | 3.7% {68ms} TextMorphForEditView(Morph)>>invalidRect:from: | | 3.7% {68ms} TransformMorph>>invalidRect:from: |9.8% {179ms} PluggableTextMorph>>scrollSelectionIntoView | |9.8% {179ms} PluggableTextMorph>>scrollSelectionIntoView: | | 8.1% {148ms} PluggableTextMorph(ScrollPane)>>scrollBy: | | 2.7% {49ms} TransformMorph>>offset: | | |2.5% {46ms} TransformMorph(Morph)>>changed | | 2.4% {44ms} PluggableTextMorph(ScrollPane)>>vLeftoverScrollRange |3.4% {62ms} TextMorphEditor>>selectFrom:to: | 2.8% {51ms} TextMorphEditor(ParagraphEditor)>>selectInvisiblyFrom:to: | 2.8% {51ms} TextMorphEditor(ParagraphEditor)>>computeIntervalFrom:to: 45.0% {824ms} PluggableTextMorph>>appendEntry 39.7% {727ms} PluggableTextMorph>>replaceSelectionWith: |39.7% {727ms} TextMorphEditor(ParagraphEditor)>>replaceSelectionWith: | 39.5% {723ms} TextMorphEditor>>zapSelectionWith: | 27.7% {507ms} MultiNewParagraph(NewParagraph)>>replaceFrom:to:with:displaying: | |27.0% {494ms} MultiNewParagraph(NewParagraph)>>recomposeFrom:to:delta: | | 12.3% {225ms} MultiNewParagraph (NewParagraph)>>composeLinesFrom:to:delta:into:priorLines:atY: | | |12.3% {225ms} TextComposer>>composeLinesFrom:to:del...ner:wantsColumnBreaks: | | | 8.1% {148ms} OrderedCollection(SequenceableCollection)>>asArray | | | |8.1% {148ms} Array class(ArrayedCollection class)>>withAll: | | | | 8.1% {148ms} Array(SequenceableCollection)>>replaceFrom:to:with: | | | | 8.0% {146ms} Array>>replaceFrom:to:with:startingAt: | | | | 8.0% {146ms} Array(SequenceableCollection)>>replaceFrom:to:with:startingAt: | | | | 4.0% {73ms} OrderedCollection>>at: | | | | 4.0% {73ms} primitives | | | 4.2% {77ms} TextComposer>>composeAllLines | | | 4.1% {75ms} TextComposer>>composeOneLine | | | 3.8% {70ms} TextComposer>>composeAllRectangles: | | | 3.4% {62ms} TextComposer>>composeEachRectangleIn: | | | 3.2% {59ms} CompositionScanner>>composeFrom:inRectan...leftSide:rightSide: | | 9.1% {167ms} OrderedCollection>>addLast: | | |6.1% {112ms} primitives | | |3.0% {55ms} OrderedCollection>>makeRoomAtLast | | 5.5% {101ms} primitives | 8.6% {157ms} TextMorphEditor>>addEditCommand: | |8.6% {157ms} TextMorphCommandHistory>>rememberCommand: | | 8.5% {156ms} TextMorphCommandHistory>>removeUndoneCommands | | 8.4% {154ms} OrderedCollection>>reversed | | 4.4% {81ms} OrderedCollection>>addLast: | | |4.0% {73ms} primitives | | 3.9% {71ms} OrderedCollection>>reverseDo: | 2.3% {42ms} TextMorphEditor(ParagraphEditor)>>computeIntervalFrom:to: 5.2% {95ms} PluggableTextMorph>>selectInvisiblyFrom:to: 5.2% {95ms} TextMorphEditor(ParagraphEditor)>>selectInvisiblyFrom:to: 5.2% {95ms} TextMorphEditor(ParagraphEditor)>>computeIntervalFrom:to: 2.6% {48ms} TextMorphEditor(ParagraphEditor)>>setMark: |2.5% {46ms} MultiNewParagraph(NewParagraph)>>characterBlockForIndex: | 2.2% {40ms} CharacterBlockScanner>>characterBlockAtPoint:index:in: 2.5% {46ms} TextMorphEditor(ParagraphEditor)>>setPoint: 2.4% {44ms} MultiNewParagraph(NewParagraph)>>characterBlockForIndex: 2.1% {38ms} CharacterBlockScanner>>characterBlockAtPoint:index:in: **Leaves** 10.1% {185ms} OrderedCollection>>addLast: 5.5% {101ms} MultiNewParagraph(NewParagraph)>>recomposeFrom:to:delta: 4.0% {73ms} OrderedCollection>>at: 4.0% {73ms} Array(SequenceableCollection)>>replaceFrom:to:with:startingAt: 3.9% {71ms} OrderedCollection>>reverseDo: 3.3% {60ms} SmallIdentityDictionary>>findIndexFor: 3.1% {57ms} OrderedCollection>>makeRoomAtLast 2.5% {46ms} Rectangle>>setOrigin:corner: 2.2% {40ms} Rectangle class>>origin:corner: **Memory** old +494,828 bytes young +79,176 bytes used +574,004 bytes free -574,004 bytes **GCs** full 0 totalling 0ms (0.0% uptime) incr 627 totalling 95ms (5.0% uptime), avg 0.0ms tenures 11 (avg 57 GCs/tenure) root table 0 overflows
MessageTally is bad advisor in this issue, because it runs additional process which watching the other one. So, you may 2009/5/3 Stéphane Ducasse <stephane.ducasse@inria.fr>:
Strange I cannot reproduce my benchmarh behavior. May be I had two transcript open, would be idiot but why not.
in 10297 MessageTally spyOn: [1 to: 1000 do: [:i | Transcript show: i printString ;cr]] -> 1934 ms
and in 10195 -> 1850
In 10292 i got these numbers growing higher and higher each time i run it: Transcript clear. [1 to: 1000 do: [:i | Transcript show: i printString ;cr]] timeToRun (lower run earlier) 2918 2630 2276 1948 1636 this is strange. Seems like Transcript clear not doing as it should be, leaking the space.
now with [....] timeToRun I get 2434 ms in 10297
and 2123 in 10195
But I do not now have TextMorphCommandHistory referenced at all
Something like that
 - 1831 tallies, 1831 msec.
**Tree** 100.0% {1831ms} TranscriptStream>>show:  100.0% {1831ms} TranscriptStream>>endEntry   99.8% {1827ms} TranscriptStream(Object)>>changed:    99.8% {1827ms} PluggableTextMorph>>update:     54.7% {1002ms} PluggableTextMorph>>handleEdit:      |41.5% {760ms} TextMorphForEditView(TextMorph)>>handleEdit:      |  |37.1% {679ms} TextMorphForEditView>>updateFromParagraph      |  |  |29.8% {546ms} PluggableTextMorph(ScrollPane)>>setScrollDeltas      |  |  |  |15.9% {291ms} PluggableTextMorph(ScrollPane)>>hideOrShowScrollBars      |  |  |  |  |7.2% {132ms} PluggableTextMorph(ScrollPane)>>resizeScrollBars      |  |  |  |  |  |4.8% {88ms} PluggableTextMorph(ScrollPane)>>hResizeScrollBar      |  |  |  |  |  |  |3.7% {68ms} PluggableTextMorph(ScrollPane)>>hScrollBarWidth      |  |  |  |  |  |  |  3.1% {57ms} PluggableTextMorph(ScrollPane)>>vIsScrollbarNeeded      |  |  |  |  |  |  |   3.1% {57ms} PluggableTextMorph(ScrollPane)>>vIsScrollable      |  |  |  |  |  |  |    2.7% {49ms} PluggableTextMorph(ScrollPane)>>vLeftoverScrollRange      |  |  |  |  |  |  |     2.1% {38ms} PluggableTextMorph(ScrollPane)>>vScrollBarHeight      |  |  |  |  |  |  |      2.1% {38ms} PluggableTextMorph(ScrollPane)>>hIsScrollbarNeeded      |  |  |  |  |  |2.3% {42ms} PluggableTextMorph(ScrollPane)>>vResizeScrollBar      |  |  |  |  |4.5% {82ms} PluggableTextMorph(ScrollPane)>>vHideOrShowScrollBar      |  |  |  |  |  |4.1% {75ms} PluggableTextMorph(ScrollPane)>>vIsScrollbarNeeded      |  |  |  |  |  |  3.7% {68ms} PluggableTextMorph(ScrollPane)>>vIsScrollable      |  |  |  |  |  |   3.1% {57ms} PluggableTextMorph(ScrollPane)>>vLeftoverScrollRange      |  |  |  |  |  |    2.2% {40ms} PluggableTextMorph(ScrollPane)>>vScrollBarHeight      |  |  |  |  |  |     2.2% {40ms} PluggableTextMorph(ScrollPane)>>hIsScrollbarNeeded      |  |  |  |  |3.9% {71ms} PluggableTextMorph(ScrollPane)>>hHideOrShowScrollBar      |  |  |  |  |  2.2% {40ms} PluggableTextMorph(ScrollPane)>>hHideScrollBar      |  |  |  |13.7% {251ms} PluggableTextMorph(ScrollPane)>>vSetScrollDelta      |  |  |  |  6.1% {112ms} ScrollBar>>setValue:      |  |  |  |   |6.1% {112ms} ScrollBar(Slider)>>setValue:      |  |  |  |   |  4.9% {90ms} PluggableTextMorph(ScrollPane)>>vScrollBarValue:      |  |  |  |   |   2.5% {46ms} PluggableTextMorph(ScrollPane)>>vLeftoverScrollRange      |  |  |  |   |   2.2% {40ms} TransformMorph>>offset:      |  |  |  |  2.8% {51ms} PluggableTextMorph(ScrollPane)>>vLeftoverScrollRange      |  |  |  |   2.2% {40ms} PluggableTextMorph(ScrollPane)>>vScrollBarHeight      |  |  |  |    2.1% {38ms} PluggableTextMorph(ScrollPane)>>hIsScrollbarNeeded      |  |  |7.4% {135ms} TextMorphForEditView(TextMorph)>>updateFromParagraph      |  |  |  6.8% {125ms} TextMorphForEditView(TextMorph)>>fit      |  |  |   4.4% {81ms} TextMorphForEditView(Morph)>>extent:      |  |  |    |4.0% {73ms} TextMorphForEditView(Morph)>>changed      |  |  |    |  3.9% {71ms} TextMorphForEditView(Morph)>>invalidRect:      |  |  |    |   3.9% {71ms} TextMorphForEditView(Morph)>>invalidRect:from:      |  |  |    |    3.9% {71ms} TransformMorph>>invalidRect:from:      |  |  |    |     2.2% {40ms} TransformMorph(Morph)>>invalidRect:from:      |  |  |   2.2% {40ms} TextMorphForEditView(Morph)>>changed      |  |  |    2.2% {40ms} TextMorphForEditView(Morph)>>invalidRect:      |  |  |     2.1% {38ms} TextMorphForEditView(Morph)>>invalidRect:from:      |  |  |      2.1% {38ms} TransformMorph>>invalidRect:from:      |  |4.4% {81ms} TextMorphForEditView(TextMorph)>>selectionChanged      |  |  3.7% {68ms} TextMorphForEditView(Morph)>>invalidRect:      |  |   3.7% {68ms} TextMorphForEditView(Morph)>>invalidRect:from:      |  |    3.7% {68ms} TransformMorph>>invalidRect:from:      |9.8% {179ms} PluggableTextMorph>>scrollSelectionIntoView      |  |9.8% {179ms} PluggableTextMorph>>scrollSelectionIntoView:      |  |  8.1% {148ms} PluggableTextMorph(ScrollPane)>>scrollBy:      |  |   2.7% {49ms} TransformMorph>>offset:      |  |    |2.5% {46ms} TransformMorph(Morph)>>changed      |  |   2.4% {44ms} PluggableTextMorph(ScrollPane)>>vLeftoverScrollRange      |3.4% {62ms} TextMorphEditor>>selectFrom:to:      |  2.8% {51ms} TextMorphEditor(ParagraphEditor)>>selectInvisiblyFrom:to:      |   2.8% {51ms} TextMorphEditor(ParagraphEditor)>>computeIntervalFrom:to:     45.0% {824ms} PluggableTextMorph>>appendEntry      39.7% {727ms} PluggableTextMorph>>replaceSelectionWith:       |39.7% {727ms} TextMorphEditor(ParagraphEditor)>>replaceSelectionWith:       |  39.5% {723ms} TextMorphEditor>>zapSelectionWith:       |   27.7% {507ms} MultiNewParagraph(NewParagraph)>>replaceFrom:to:with:displaying:       |    |27.0% {494ms} MultiNewParagraph(NewParagraph)>>recomposeFrom:to:delta:       |    |  12.3% {225ms} MultiNewParagraph (NewParagraph)>>composeLinesFrom:to:delta:into:priorLines:atY:       |    |   |12.3% {225ms} TextComposer>>composeLinesFrom:to:del...ner:wantsColumnBreaks:       |    |   |  8.1% {148ms} OrderedCollection(SequenceableCollection)>>asArray       |    |   |   |8.1% {148ms} Array class(ArrayedCollection class)>>withAll:       |    |   |   |  8.1% {148ms} Array(SequenceableCollection)>>replaceFrom:to:with:       |    |   |   |   8.0% {146ms} Array>>replaceFrom:to:with:startingAt:       |    |   |   |    8.0% {146ms} Array(SequenceableCollection)>>replaceFrom:to:with:startingAt:       |    |   |   |     4.0% {73ms} OrderedCollection>>at:       |    |   |   |     4.0% {73ms} primitives       |    |   |  4.2% {77ms} TextComposer>>composeAllLines       |    |   |   4.1% {75ms} TextComposer>>composeOneLine       |    |   |    3.8% {70ms} TextComposer>>composeAllRectangles:       |    |   |     3.4% {62ms} TextComposer>>composeEachRectangleIn:       |    |   |      3.2% {59ms} CompositionScanner>>composeFrom:inRectan...leftSide:rightSide:       |    |  9.1% {167ms} OrderedCollection>>addLast:       |    |   |6.1% {112ms} primitives       |    |   |3.0% {55ms} OrderedCollection>>makeRoomAtLast       |    |  5.5% {101ms} primitives       |   8.6% {157ms} TextMorphEditor>>addEditCommand:       |    |8.6% {157ms} TextMorphCommandHistory>>rememberCommand:       |    |  8.5% {156ms} TextMorphCommandHistory>>removeUndoneCommands       |    |   8.4% {154ms} OrderedCollection>>reversed       |    |    4.4% {81ms} OrderedCollection>>addLast:       |    |     |4.0% {73ms} primitives       |    |    3.9% {71ms} OrderedCollection>>reverseDo:       |   2.3% {42ms} TextMorphEditor(ParagraphEditor)>>computeIntervalFrom:to:      5.2% {95ms} PluggableTextMorph>>selectInvisiblyFrom:to:       5.2% {95ms} TextMorphEditor(ParagraphEditor)>>selectInvisiblyFrom:to:        5.2% {95ms} TextMorphEditor(ParagraphEditor)>>computeIntervalFrom:to:         2.6% {48ms} TextMorphEditor(ParagraphEditor)>>setMark:          |2.5% {46ms} MultiNewParagraph(NewParagraph)>>characterBlockForIndex:          |  2.2% {40ms} CharacterBlockScanner>>characterBlockAtPoint:index:in:         2.5% {46ms} TextMorphEditor(ParagraphEditor)>>setPoint:          2.4% {44ms} MultiNewParagraph(NewParagraph)>>characterBlockForIndex:           2.1% {38ms} CharacterBlockScanner>>characterBlockAtPoint:index:in: **Leaves** 10.1% {185ms} OrderedCollection>>addLast: 5.5% {101ms} MultiNewParagraph(NewParagraph)>>recomposeFrom:to:delta: 4.0% {73ms} OrderedCollection>>at: 4.0% {73ms} Array(SequenceableCollection)>>replaceFrom:to:with:startingAt: 3.9% {71ms} OrderedCollection>>reverseDo: 3.3% {60ms} SmallIdentityDictionary>>findIndexFor: 3.1% {57ms} OrderedCollection>>makeRoomAtLast 2.5% {46ms} Rectangle>>setOrigin:corner: 2.2% {40ms} Rectangle class>>origin:corner:
**Memory**     old           +494,828 bytes     young      +79,176 bytes     used       +574,004 bytes     free       -574,004 bytes
**GCs**     full           0 totalling 0ms (0.0% uptime)     incr       627 totalling 95ms (5.0% uptime), avg 0.0ms     tenures     11 (avg 57 GCs/tenure)     root table    0 overflows
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Best regards, Igor Stasenko AKA sig.
2009/5/4 Igor Stasenko <siguctua@gmail.com>:
MessageTally is bad advisor in this issue, because it runs additional process which watching the other one. So, you may
oops.. forgot to finish this phrase. I verified my claims, and it seems that for this issue this is not the case :)
2009/5/3 Stéphane Ducasse <stephane.ducasse@inria.fr>:
Strange I cannot reproduce my benchmarh behavior. May be I had two transcript open, would be idiot but why not.
in 10297 MessageTally spyOn: [1 to: 1000 do: [:i | Transcript show: i printString ;cr]] -> 1934 ms
and in 10195 -> 1850
In 10292 i got these numbers growing higher and higher each time i run it: Transcript clear. [1 to: 1000 do: [:i | Transcript show: i printString ;cr]] timeToRun (lower run earlier) 2918 2630 2276 1948 1636
this is strange. Seems like Transcript clear not doing as it should be, leaking the space.
now with [....] timeToRun I get 2434 ms in 10297
and 2123 in 10195
But I do not now have TextMorphCommandHistory referenced at all
Something like that
 - 1831 tallies, 1831 msec.
**Tree** 100.0% {1831ms} TranscriptStream>>show:  100.0% {1831ms} TranscriptStream>>endEntry   99.8% {1827ms} TranscriptStream(Object)>>changed:    99.8% {1827ms} PluggableTextMorph>>update:     54.7% {1002ms} PluggableTextMorph>>handleEdit:      |41.5% {760ms} TextMorphForEditView(TextMorph)>>handleEdit:      |  |37.1% {679ms} TextMorphForEditView>>updateFromParagraph      |  |  |29.8% {546ms} PluggableTextMorph(ScrollPane)>>setScrollDeltas      |  |  |  |15.9% {291ms} PluggableTextMorph(ScrollPane)>>hideOrShowScrollBars      |  |  |  |  |7.2% {132ms} PluggableTextMorph(ScrollPane)>>resizeScrollBars      |  |  |  |  |  |4.8% {88ms} PluggableTextMorph(ScrollPane)>>hResizeScrollBar      |  |  |  |  |  |  |3.7% {68ms} PluggableTextMorph(ScrollPane)>>hScrollBarWidth      |  |  |  |  |  |  |  3.1% {57ms} PluggableTextMorph(ScrollPane)>>vIsScrollbarNeeded      |  |  |  |  |  |  |   3.1% {57ms} PluggableTextMorph(ScrollPane)>>vIsScrollable      |  |  |  |  |  |  |    2.7% {49ms} PluggableTextMorph(ScrollPane)>>vLeftoverScrollRange      |  |  |  |  |  |  |     2.1% {38ms} PluggableTextMorph(ScrollPane)>>vScrollBarHeight      |  |  |  |  |  |  |      2.1% {38ms} PluggableTextMorph(ScrollPane)>>hIsScrollbarNeeded      |  |  |  |  |  |2.3% {42ms} PluggableTextMorph(ScrollPane)>>vResizeScrollBar      |  |  |  |  |4.5% {82ms} PluggableTextMorph(ScrollPane)>>vHideOrShowScrollBar      |  |  |  |  |  |4.1% {75ms} PluggableTextMorph(ScrollPane)>>vIsScrollbarNeeded      |  |  |  |  |  |  3.7% {68ms} PluggableTextMorph(ScrollPane)>>vIsScrollable      |  |  |  |  |  |   3.1% {57ms} PluggableTextMorph(ScrollPane)>>vLeftoverScrollRange      |  |  |  |  |  |    2.2% {40ms} PluggableTextMorph(ScrollPane)>>vScrollBarHeight      |  |  |  |  |  |     2.2% {40ms} PluggableTextMorph(ScrollPane)>>hIsScrollbarNeeded      |  |  |  |  |3.9% {71ms} PluggableTextMorph(ScrollPane)>>hHideOrShowScrollBar      |  |  |  |  |  2.2% {40ms} PluggableTextMorph(ScrollPane)>>hHideScrollBar      |  |  |  |13.7% {251ms} PluggableTextMorph(ScrollPane)>>vSetScrollDelta      |  |  |  |  6.1% {112ms} ScrollBar>>setValue:      |  |  |  |   |6.1% {112ms} ScrollBar(Slider)>>setValue:      |  |  |  |   |  4.9% {90ms} PluggableTextMorph(ScrollPane)>>vScrollBarValue:      |  |  |  |   |   2.5% {46ms} PluggableTextMorph(ScrollPane)>>vLeftoverScrollRange      |  |  |  |   |   2.2% {40ms} TransformMorph>>offset:      |  |  |  |  2.8% {51ms} PluggableTextMorph(ScrollPane)>>vLeftoverScrollRange      |  |  |  |   2.2% {40ms} PluggableTextMorph(ScrollPane)>>vScrollBarHeight      |  |  |  |    2.1% {38ms} PluggableTextMorph(ScrollPane)>>hIsScrollbarNeeded      |  |  |7.4% {135ms} TextMorphForEditView(TextMorph)>>updateFromParagraph      |  |  |  6.8% {125ms} TextMorphForEditView(TextMorph)>>fit      |  |  |   4.4% {81ms} TextMorphForEditView(Morph)>>extent:      |  |  |    |4.0% {73ms} TextMorphForEditView(Morph)>>changed      |  |  |    |  3.9% {71ms} TextMorphForEditView(Morph)>>invalidRect:      |  |  |    |   3.9% {71ms} TextMorphForEditView(Morph)>>invalidRect:from:      |  |  |    |    3.9% {71ms} TransformMorph>>invalidRect:from:      |  |  |    |     2.2% {40ms} TransformMorph(Morph)>>invalidRect:from:      |  |  |   2.2% {40ms} TextMorphForEditView(Morph)>>changed      |  |  |    2.2% {40ms} TextMorphForEditView(Morph)>>invalidRect:      |  |  |     2.1% {38ms} TextMorphForEditView(Morph)>>invalidRect:from:      |  |  |      2.1% {38ms} TransformMorph>>invalidRect:from:      |  |4.4% {81ms} TextMorphForEditView(TextMorph)>>selectionChanged      |  |  3.7% {68ms} TextMorphForEditView(Morph)>>invalidRect:      |  |   3.7% {68ms} TextMorphForEditView(Morph)>>invalidRect:from:      |  |    3.7% {68ms} TransformMorph>>invalidRect:from:      |9.8% {179ms} PluggableTextMorph>>scrollSelectionIntoView      |  |9.8% {179ms} PluggableTextMorph>>scrollSelectionIntoView:      |  |  8.1% {148ms} PluggableTextMorph(ScrollPane)>>scrollBy:      |  |   2.7% {49ms} TransformMorph>>offset:      |  |    |2.5% {46ms} TransformMorph(Morph)>>changed      |  |   2.4% {44ms} PluggableTextMorph(ScrollPane)>>vLeftoverScrollRange      |3.4% {62ms} TextMorphEditor>>selectFrom:to:      |  2.8% {51ms} TextMorphEditor(ParagraphEditor)>>selectInvisiblyFrom:to:      |   2.8% {51ms} TextMorphEditor(ParagraphEditor)>>computeIntervalFrom:to:     45.0% {824ms} PluggableTextMorph>>appendEntry      39.7% {727ms} PluggableTextMorph>>replaceSelectionWith:       |39.7% {727ms} TextMorphEditor(ParagraphEditor)>>replaceSelectionWith:       |  39.5% {723ms} TextMorphEditor>>zapSelectionWith:       |   27.7% {507ms} MultiNewParagraph(NewParagraph)>>replaceFrom:to:with:displaying:       |    |27.0% {494ms} MultiNewParagraph(NewParagraph)>>recomposeFrom:to:delta:       |    |  12.3% {225ms} MultiNewParagraph (NewParagraph)>>composeLinesFrom:to:delta:into:priorLines:atY:       |    |   |12.3% {225ms} TextComposer>>composeLinesFrom:to:del...ner:wantsColumnBreaks:       |    |   |  8.1% {148ms} OrderedCollection(SequenceableCollection)>>asArray       |    |   |   |8.1% {148ms} Array class(ArrayedCollection class)>>withAll:       |    |   |   |  8.1% {148ms} Array(SequenceableCollection)>>replaceFrom:to:with:       |    |   |   |   8.0% {146ms} Array>>replaceFrom:to:with:startingAt:       |    |   |   |    8.0% {146ms} Array(SequenceableCollection)>>replaceFrom:to:with:startingAt:       |    |   |   |     4.0% {73ms} OrderedCollection>>at:       |    |   |   |     4.0% {73ms} primitives       |    |   |  4.2% {77ms} TextComposer>>composeAllLines       |    |   |   4.1% {75ms} TextComposer>>composeOneLine       |    |   |    3.8% {70ms} TextComposer>>composeAllRectangles:       |    |   |     3.4% {62ms} TextComposer>>composeEachRectangleIn:       |    |   |      3.2% {59ms} CompositionScanner>>composeFrom:inRectan...leftSide:rightSide:       |    |  9.1% {167ms} OrderedCollection>>addLast:       |    |   |6.1% {112ms} primitives       |    |   |3.0% {55ms} OrderedCollection>>makeRoomAtLast       |    |  5.5% {101ms} primitives       |   8.6% {157ms} TextMorphEditor>>addEditCommand:       |    |8.6% {157ms} TextMorphCommandHistory>>rememberCommand:       |    |  8.5% {156ms} TextMorphCommandHistory>>removeUndoneCommands       |    |   8.4% {154ms} OrderedCollection>>reversed       |    |    4.4% {81ms} OrderedCollection>>addLast:       |    |     |4.0% {73ms} primitives       |    |    3.9% {71ms} OrderedCollection>>reverseDo:       |   2.3% {42ms} TextMorphEditor(ParagraphEditor)>>computeIntervalFrom:to:      5.2% {95ms} PluggableTextMorph>>selectInvisiblyFrom:to:       5.2% {95ms} TextMorphEditor(ParagraphEditor)>>selectInvisiblyFrom:to:        5.2% {95ms} TextMorphEditor(ParagraphEditor)>>computeIntervalFrom:to:         2.6% {48ms} TextMorphEditor(ParagraphEditor)>>setMark:          |2.5% {46ms} MultiNewParagraph(NewParagraph)>>characterBlockForIndex:          |  2.2% {40ms} CharacterBlockScanner>>characterBlockAtPoint:index:in:         2.5% {46ms} TextMorphEditor(ParagraphEditor)>>setPoint:          2.4% {44ms} MultiNewParagraph(NewParagraph)>>characterBlockForIndex:           2.1% {38ms} CharacterBlockScanner>>characterBlockAtPoint:index:in: **Leaves** 10.1% {185ms} OrderedCollection>>addLast: 5.5% {101ms} MultiNewParagraph(NewParagraph)>>recomposeFrom:to:delta: 4.0% {73ms} OrderedCollection>>at: 4.0% {73ms} Array(SequenceableCollection)>>replaceFrom:to:with:startingAt: 3.9% {71ms} OrderedCollection>>reverseDo: 3.3% {60ms} SmallIdentityDictionary>>findIndexFor: 3.1% {57ms} OrderedCollection>>makeRoomAtLast 2.5% {46ms} Rectangle>>setOrigin:corner: 2.2% {40ms} Rectangle class>>origin:corner:
**Memory**     old           +494,828 bytes     young      +79,176 bytes     used       +574,004 bytes     free       -574,004 bytes
**GCs**     full           0 totalling 0ms (0.0% uptime)     incr       627 totalling 95ms (5.0% uptime), avg 0.0ms     tenures     11 (avg 57 GCs/tenure)     root table    0 overflows
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Best regards, Igor Stasenko AKA sig.
-- Best regards, Igor Stasenko AKA sig.
participants (3)
-
Igor Stasenko -
Nicolas Cellier -
Stéphane Ducasse