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