Hello all,
I am working with text presentation in Glamour: the browser is used to show the contents of code files. I noted that the time to display the contents of a file (almost) exponentially grows with the size of the file. So, performing tests on files of three different sizes, I obtain the following response times (using Pharo profiler):
1000 lines 2s 2500 lines 11s 3500 lines 23s. So thats quite lot for me where I occasionally have files with 2K lines and I may need to browse their contents rapidly.
Running my test script with the profiler in Pharo, I get this tree. I see that the message fromString: method is sent to Text class several times and that takes about 96% of the time (in all test cases). Any hints on how to reduce the number of times the method is invoked by glamour?
tx in advance, Usman Trace with 3.5K lines: - 23669 tallies, 23671 msec. **Tree** --------------------------------
Process: (40s) 516161536: nil -------------------------------- 100.0% {23669ms} GLMTabulator(GLMBrowser)>>openOn:with: 100.0% {23667ms} GLMTabulator(GLMBrowser)>>openWith:
100.0% {23667ms} GLMMorphicRenderer>>open: 91.2% {21577ms} GLMMorphicWindowRenderer class(GLMMorphicWidgetRenderer class)>>render:from: |91.2% {21577ms} GLMMorphicWindowRenderer>>render:
| 72.3% {17122ms} GLMSystemWindow(SystemWindow)>>addMorph:fullFrame: | |72.3% {17122ms} PanelMorph>>adoptPaneColor: | | 72.3% {17120ms} PanelMorph(Morph)>>adoptPaneColor:
| | 72.3% {17120ms} PanelMorph>>adoptPaneColor: | | 72.3% {17120ms} PanelMorph(Morph)>>color: | | 72.3% {17120ms} PanelMorph(Morph)>>changed
| | 72.3% {17120ms} PanelMorph(Morph)>>privateFullBounds | | 72.3% {17120ms} PanelMorph(Morph)>>submorphBounds | | 72.3% {17120ms} LazyTabGroupMorph(Morph)>>fullBounds
| | 72.3% {17120ms} LazyTabGroupMorph(Morph)>>doLayoutIn: | | 65.1% {15418ms} TableLayout>>layout:in: | | |65.1% {15418ms} TableLayout>>layoutTopToBottom:in:
| | | 65.1% {15418ms} PanelMorph(Morph)>>layoutInBounds: | | | 65.1% {15418ms} PanelMorph(Morph)>>bounds: | | | 65.1% {15418ms} PanelMorph(Morph)>>position:
| | | 65.1% {15418ms} PanelMorph(Morph)>>fullBounds | | | 65.1% {15418ms} PanelMorph(Morph)>>doLayoutIn: | | | 65.1% {15418ms} TableLayout>>layout:in:
| | | 65.1% {15418ms} TableLayout>>layoutTopToBottom:in: | | | 65.1% {15418ms} GLMPluggableTextMorph(Morph)>>layoutInBounds:
| | | 65.1% {15418ms} GLMPluggableTextMorph(Morph)>>bounds: | | | 65.1% {15418ms} GLMPluggableTextMorph(PluggableTextMorph)>>extent:
| | | 65.1% {15414ms} GLMTextMorphForEditView(TextMorph)>>extent: | | | 65.1% {15414ms} GLMTextMorphForEditView(TextMorph)>>installEditorToReplace:
| | | 65.1% {15414ms} GLMSmalltalkEditor class(TextEditor class)>>forMorph: | | | 65.1% {15414ms} GLMSmalltalkEditor(TextEditor)>>initWithMorph:
| | | 65.1% {15414ms} GLMSmalltalkEditor(TextEditor)>>resetState | | | 65.1% {15414ms} GLMSmalltalkEditor(TextEditor)>>paragraph
| | | 65.1% {15414ms} GLMTextMorphForEditView(TextMorphForEditView)>>paragraph | | | 65.1% {15414ms} GLMTextMorphForEditView(TextMorph)>>paragraph
| | | 65.1% {15414ms} Paragraph>>compose:style:from:in: | | | 65.1% {15414ms} Paragraph>>composeAll
| | | 65.1% {15414ms} Paragraph>>multiComposeLinesFrom:to:delta:into:priorLines:atY: | | | 65.1% {15414ms} TextComposer>>multiComposeLinesFrom:to:delta:into:priorLi...extStyle:text:container:wantsColumnBreaks:
| | | 65.1% {15414ms} TextComposer>>composeAllLines | | | 65.1% {15414ms} TextComposer>>composeOneLine
| | | 65.1% {15398ms} TextComposer>>composeAllRectangles: | | | 65.0% {15386ms} TextComposer>>composeEachRectangleIn:
| | | 64.9% {15369ms} MultiCompositionScanner>>composeFrom:inRectangle:firstLine:leftSide:rightSide: | | | 63.9% {15116ms} Text class>>fromString:
| | | 63.3% {14992ms} primitives | | 7.2% {1702ms} LazyTabGroupMorph(Morph)>>privateFullBounds
| | 7.2% {1702ms} LazyTabGroupMorph(Morph)>>submorphBounds | | 7.2% {1702ms} PanelMorph(Morph)>>fullBounds | | 7.2% {1702ms} PanelMorph(Morph)>>doLayoutIn:
| | 7.2% {1702ms} TableLayout>>layout:in: | | 7.2% {1700ms} TableLayout>>layoutTopToBottom:in: | | 7.2% {1700ms} GLMPluggableTextMorph(Morph)>>layoutInBounds:
| | 7.2% {1700ms} GLMPluggableTextMorph(Morph)>>bounds: | | 7.2% {1700ms} GLMPluggableTextMorph(PluggableTextMorph)>>extent:
| | 7.2% {1696ms} GLMTextMorphForEditView(TextMorph)>>extent: | | 7.2% {1696ms} GLMTextMorphForEditView(TextMorph)>>installEditorToReplace:
| | 7.2% {1696ms} GLMSmalltalkEditor class(TextEditor class)>>forMorph: | | 7.2% {1696ms} GLMSmalltalkEditor(TextEditor)>>initWithMorph:
| | 7.2% {1696ms} GLMSmalltalkEditor(TextEditor)>>resetState | | 7.2% {1696ms} GLMSmalltalkEditor(TextEditor)>>paragraph
| | 7.2% {1696ms} GLMTextMorphForEditView(TextMorphForEditView)>>paragraph | | 7.2% {1696ms} GLMTextMorphForEditView(TextMorph)>>paragraph
| | 7.2% {1696ms} Paragraph>>compose:style:from:in: | | 7.2% {1696ms} Paragraph>>composeAll
| | 7.2% {1696ms} Paragraph>>multiComposeLinesFrom:to:delta:into:priorLines:atY: | | 7.2% {1696ms} TextComposer>>multiComposeLinesFrom:to:delta:into:priorLi...extStyle:text:container:wantsColumnBreaks:
| | 7.2% {1696ms} TextComposer>>composeAllLines | | 7.2% {1696ms} TextComposer>>composeOneLine
| | 7.2% {1696ms} TextComposer>>composeAllRectangles: | | 7.2% {1694ms} TextComposer>>composeEachRectangleIn:
| | 7.1% {1692ms} MultiCompositionScanner>>composeFrom:inRectangle:firstLine:leftSide:rightSide: | | 6.9% {1629ms} Text class>>fromString:
| | 6.8% {1621ms} primitives | 18.8% {4445ms} GLMMorphicWindowRenderer(GLMMorphicWidgetRenderer)>>renderObject:
| 18.8% {4445ms} GLMMorphicRenderer(GLMRenderer)>>render: | 18.8% {4445ms} GLMTabulator>>renderGlamorouslyOn: | 18.8% {4445ms} GLMMorphicRenderer>>renderTabulator:
| 18.8% {4445ms} GLMMorphicTabulatorRenderer class(GLMMorphicWidgetRenderer class)>>render:from: | 18.8% {4445ms} GLMMorphicTabulatorRenderer>>render:
| 18.8% {4445ms} GLMMorphicTabulatorRenderer>>renderCustomRow:ofPane:inUI:inBrowser: | 18.8% {4445ms} GLMMorphicTabulatorRenderer(GLMMorphicWidgetRenderer)>>renderObject:
| 18.8% {4445ms} GLMMorphicRenderer(GLMRenderer)>>render: | 18.8% {4445ms} GLMPane>>renderGlamorouslyOn: | 18.8% {4445ms} GLMMorphicRenderer>>renderPane:
| 18.8% {4445ms} GLMMorphicPaneRenderer class(GLMMorphicWidgetRenderer class)>>render:from: | 18.8% {4445ms} GLMMorphicPaneRenderer>>render:
| 18.8% {4445ms} GLMMorphicPaneRenderer>>renderContainerFor: | 18.8% {4443ms} GLMMorphicPaneRenderer(GLMMorphicWidgetRenderer)>>renderWithTitleOrNil:
| 18.8% {4443ms} GLMMorphicPaneRenderer(GLMMorphicWidgetRenderer)>>renderObject: | 18.8% {4443ms} GLMMorphicRenderer(GLMRenderer)>>render:
| 18.8% {4443ms} GLMCompositePresentation>>renderGlamorouslyOn: | 18.8% {4443ms} GLMTabbedArrangement>>renderGlamorouslyOn:
| 18.8% {4443ms} GLMMorphicRenderer>>renderTabbedCompositePresentation: | 18.8% {4443ms} GLMMorphicTabbedRenderer class(GLMMorphicWidgetRenderer class)>>render:from:
| 18.8% {4443ms} GLMMorphicTabbedRenderer>>render: | 18.8% {4443ms} GLMMorphicTabbedRenderer(GLMMorphicWidgetRenderer)>>renderWithTitleOrNil:
| 18.8% {4441ms} GLMMorphicTabbedRenderer(GLMMorphicWidgetRenderer)>>renderObject: | 18.8% {4441ms} GLMMorphicRenderer(GLMRenderer)>>render:
| 18.8% {4441ms} GLMTextPresentation>>renderGlamorouslyOn: | 18.8% {4441ms} GLMMorphicRenderer>>renderTextPresentation:
| 18.8% {4441ms} GLMMorphicTextRenderer class(GLMMorphicWidgetRenderer class)>>render:from: | 18.8% {4441ms} GLMMorphicTextRenderer>>render:
| 18.8% {4441ms} GLMMorphicTextRenderer>>textMorphForModel: | 18.8% {4441ms} GLMPluggableTextMorph class(PluggableTextMorph class)>>on:text:accept:readSelection:menu:
| 18.7% {4437ms} GLMPluggableTextMorph(PluggableTextMorph)>>on:text:accept:readSelection:menu: | 18.7% {4437ms} GLMPluggableTextMorph(PluggableTextMorph)>>setText:
| 18.7% {4437ms} GLMPluggableTextMorph(PluggableTextMorph)>>setTextBasic: | 10.2% {2407ms} GLMTextMorphForEditView(TextMorph)>>contents:wrappedTo:
| |10.2% {2407ms} GLMTextMorphForEditView(TextMorph)>>newContents: | | 10.2% {2407ms} GLMTextMorphForEditView(TextMorphForEditView)>>paragraph
| | 10.2% {2407ms} GLMTextMorphForEditView(TextMorph)>>paragraph | | 10.2% {2407ms} Paragraph>>compose:style:from:in:
| | 10.2% {2407ms} Paragraph>>composeAll | | 10.2% {2407ms} Paragraph>>multiComposeLinesFrom:to:delta:into:priorLines:atY:
| | 10.2% {2407ms} TextComposer>>multiComposeLinesFrom:to:delta:into:priorLi...extStyle:text:container:wantsColumnBreaks:
| | 10.2% {2407ms} TextComposer>>composeAllLines | | 10.2% {2407ms} TextComposer>>composeOneLine
| | 10.2% {2403ms} TextComposer>>composeAllRectangles: | | 10.1% {2401ms} TextComposer>>composeEachRectangleIn:
| | 10.1% {2397ms} MultiCompositionScanner>>composeFrom:inRectangle:firstLine:leftSide:rightSide: | | 9.8% {2321ms} Text class>>fromString:
| | 9.7% {2299ms} primitives | 8.6% {2030ms} GLMPluggableTextMorph(ScrollPane)>>setScrollDeltas
| 8.6% {2028ms} GLMPluggableTextMorph(ScrollPane)>>hideOrShowScrollBars | 8.6% {2028ms} GLMPluggableTextMorph(ScrollPane)>>vHideOrShowScrollBar
| 8.6% {2028ms} GLMPluggableTextMorph(ScrollPane)>>vShowScrollBar | 8.6% {2028ms} GLMPluggableTextMorph(PluggableTextMorph)>>resetExtent
| 8.6% {2026ms} GLMPluggableTextMorph(PluggableTextMorph)>>extent: | 8.6% {2026ms} GLMTextMorphForEditView(TextMorph)>>extent:
| 8.6% {2026ms} GLMTextMorphForEditView(TextMorph)>>installEditorToReplace: | 8.6% {2026ms} GLMSmalltalkEditor class(TextEditor class)>>forMorph:
| 8.6% {2026ms} GLMSmalltalkEditor(TextEditor)>>initWithMorph: | 8.6% {2026ms} GLMSmalltalkEditor(TextEditor)>>resetState
| 8.6% {2026ms} GLMSmalltalkEditor(TextEditor)>>paragraph | 8.6% {2026ms} GLMTextMorphForEditView(TextMorphForEditView)>>paragraph
| 8.6% {2026ms} GLMTextMorphForEditView(TextMorph)>>paragraph | 8.6% {2026ms} Paragraph>>compose:style:from:in:
| 8.6% {2026ms} Paragraph>>composeAll | 8.6% {2026ms} Paragraph>>multiComposeLinesFrom:to:delta:into:priorLines:atY:
| 8.6% {2026ms} TextComposer>>multiComposeLinesFrom:to:delta:into:priorLi...extStyle:text:container:wantsColumnBreaks:
| 8.6% {2026ms} TextComposer>>composeAllLines | 8.6% {2026ms} TextComposer>>composeOneLine
| 8.6% {2024ms} TextComposer>>composeAllRectangles: | 8.5% {2020ms} TextComposer>>composeEachRectangleIn:
| 8.5% {2016ms} MultiCompositionScanner>>composeFrom:inRectangle:firstLine:leftSide:rightSide:
| 8.3% {1956ms} Text class>>fromString: | 8.2% {1950ms} primitives
8.8% {2090ms} GLMSystemWindow(Morph)>>openInWorld 8.8% {2090ms} GLMSystemWindow(SystemWindow)>>openInWorld: 8.8% {2079ms} GLMSystemWindow(Morph)>>bounds:
5.2% {1229ms} GLMSystemWindow(SystemWindow)>>position: |5.2% {1229ms} GLMSystemWindow(Morph)>>position: | 5.2% {1229ms} GLMSystemWindow(Morph)>>fullBounds
| 5.2% {1229ms} GLMSystemWindow(Morph)>>doLayoutIn: | 5.2% {1229ms} GLMSystemWindow(Morph)>>privateFullBounds | 5.2% {1229ms} GLMSystemWindow(Morph)>>submorphBounds
| 5.2% {1229ms} PanelMorph(Morph)>>fullBounds | 5.2% {1229ms} PanelMorph(Morph)>>doLayoutIn: | 5.2% {1229ms} PanelMorph(Morph)>>privateFullBounds
| 5.2% {1229ms} PanelMorph(Morph)>>submorphBounds | 5.2% {1229ms} PanelMorph(Morph)>>fullBounds | 5.2% {1229ms} PanelMorph(Morph)>>doLayoutIn:
| 5.2% {1229ms} PanelMorph(Morph)>>privateFullBounds | 5.2% {1229ms} PanelMorph(Morph)>>submorphBounds | 5.2% {1229ms} LazyTabGroupMorph(Morph)>>fullBounds
| 5.2% {1229ms} LazyTabGroupMorph(Morph)>>doLayoutIn: | 5.2% {1229ms} LazyTabGroupMorph(Morph)>>privateFullBounds
| 5.2% {1229ms} LazyTabGroupMorph(Morph)>>submorphBounds | 5.2% {1229ms} PanelMorph(Morph)>>fullBounds
| 5.2% {1229ms} PanelMorph(Morph)>>doLayoutIn: | 5.2% {1229ms} TableLayout>>layout:in:
| 5.2% {1227ms} TableLayout>>layoutTopToBottom:in: | 5.2% {1227ms} GLMPluggableTextMorph(Morph)>>layoutInBounds:
| 5.2% {1227ms} GLMPluggableTextMorph(Morph)>>bounds: | 5.2% {1227ms} GLMPluggableTextMorph(PluggableTextMorph)>>extent:
| 5.2% {1225ms} GLMTextMorphForEditView(TextMorph)>>extent: | 5.2% {1225ms} GLMTextMorphForEditView(TextMorph)>>installEditorToReplace:
| 5.2% {1225ms} GLMSmalltalkEditor class(TextEditor class)>>forMorph: | 5.2% {1225ms} GLMSmalltalkEditor(TextEditor)>>initWithMorph:
| 5.2% {1225ms} GLMSmalltalkEditor(TextEditor)>>resetState | 5.2% {1225ms} GLMSmalltalkEditor(TextEditor)>>paragraph
| 5.2% {1225ms} GLMTextMorphForEditView(TextMorphForEditView)>>paragraph | 5.2% {1225ms} GLMTextMorphForEditView(TextMorph)>>paragraph
| 5.2% {1225ms} Paragraph>>compose:style:from:in: | 5.2% {1225ms} Paragraph>>composeAll
| 5.2% {1225ms} Paragraph>>multiComposeLinesFrom:to:delta:into:priorLines:atY: | 5.2% {1225ms} TextComposer>>multiComposeLinesFrom:to:delta:into:priorLi...extStyle:text:container:wantsColumnBreaks:
| 5.2% {1225ms} TextComposer>>composeAllLines | 5.2% {1225ms} TextComposer>>composeOneLine
| 5.2% {1225ms} TextComposer>>composeAllRectangles: | 5.2% {1225ms} TextComposer>>composeEachRectangleIn:
| 5.2% {1225ms} MultiCompositionScanner>>composeFrom:inRectangle:firstLine:leftSide:rightSide: | 5.0% {1187ms} Text class>>fromString:
| 5.0% {1177ms} primitives 3.6% {850ms} GLMSystemWindow>>extent: 3.6% {850ms} GLMSystemWindow(Morph)>>fullBounds
3.6% {850ms} GLMSystemWindow(Morph)>>doLayoutIn: 3.6% {850ms} GLMSystemWindow(Morph)>>privateFullBounds 3.6% {850ms} GLMSystemWindow(Morph)>>submorphBounds
3.6% {850ms} PanelMorph(Morph)>>fullBounds 3.6% {850ms} PanelMorph(Morph)>>doLayoutIn: 3.6% {850ms} PanelMorph(Morph)>>privateFullBounds
3.6% {850ms} PanelMorph(Morph)>>submorphBounds 3.6% {850ms} PanelMorph(Morph)>>fullBounds 3.6% {850ms} PanelMorph(Morph)>>doLayoutIn:
3.6% {850ms} PanelMorph(Morph)>>privateFullBounds 3.6% {850ms} PanelMorph(Morph)>>submorphBounds 3.6% {850ms} LazyTabGroupMorph(Morph)>>fullBounds
3.6% {850ms} LazyTabGroupMorph(Morph)>>doLayoutIn: 3.6% {850ms} LazyTabGroupMorph(Morph)>>privateFullBounds
3.6% {850ms} LazyTabGroupMorph(Morph)>>submorphBounds 3.6% {850ms} PanelMorph(Morph)>>fullBounds
3.6% {850ms} PanelMorph(Morph)>>doLayoutIn: 3.6% {850ms} TableLayout>>layout:in: 3.6% {850ms} TableLayout>>layoutTopToBottom:in:
3.6% {848ms} GLMPluggableTextMorph(Morph)>>layoutInBounds: 3.6% {848ms} GLMPluggableTextMorph(Morph)>>bounds:
3.6% {848ms} GLMPluggableTextMorph(PluggableTextMorph)>>extent: 3.6% {848ms} GLMTextMorphForEditView(TextMorph)>>extent:
3.6% {848ms} GLMTextMorphForEditView(TextMorph)>>installEditorToReplace: 3.6% {848ms} GLMSmalltalkEditor class(TextEditor class)>>forMorph:
3.6% {848ms} GLMSmalltalkEditor(TextEditor)>>initWithMorph: 3.6% {848ms} GLMSmalltalkEditor(TextEditor)>>resetState
3.6% {848ms} GLMSmalltalkEditor(TextEditor)>>paragraph 3.6% {848ms} GLMTextMorphForEditView(TextMorphForEditView)>>paragraph
3.6% {848ms} GLMTextMorphForEditView(TextMorph)>>paragraph 3.6% {848ms} Paragraph>>compose:style:from:in:
3.6% {848ms} Paragraph>>composeAll 3.6% {848ms} Paragraph>>multiComposeLinesFrom:to:delta:into:priorLines:atY:
3.6% {848ms} TextComposer>>multiComposeLinesFrom:to:delta:into:priorLi...extStyle:text:container:wantsColumnBreaks: 3.6% {848ms} TextComposer>>composeAllLines
3.6% {846ms} TextComposer>>composeOneLine 3.6% {846ms} TextComposer>>composeAllRectangles:
3.6% {844ms} TextComposer>>composeEachRectangleIn: 3.6% {844ms} MultiCompositionScanner>>composeFrom:inRectangle:firstLine:leftSide:rightSide:
3.4% {807ms} Text class>>fromString: 3.4% {802ms} primitives
**Leaves** 96.5% {22842ms} Text class>>fromString: **Memory** old -4,940,088 bytes
young +69,144 bytes used -4,870,944 bytes
free -1,051,976 bytes **GCs** full 3 totalling 1,428ms (6.0% uptime), avg 476.0ms
incr 16030 totalling 15,162ms (64.0% uptime), avg 1.0ms tenures 42 (avg 381 GCs/tenure)
root table 0 overflows _______________________________________________ Moose-dev mailing list [hidden email] https://www.iam.unibe.ch/mailman/listinfo/moose-dev |
Usman
do you have the same result with the plain text class? Because it would be worth to post the results to Pharo-dev. Stef On Jul 23, 2012, at 5:36 AM, Usman Bhatti wrote: > Hello all, > > I am working with text presentation in Glamour: the browser is used to show the contents of code files. I noted that the time to display the contents of a file (almost) exponentially grows with the size of the file. So, performing tests on files of three different sizes, I obtain the following response times (using Pharo profiler): > 1000 lines 2s > 2500 lines 11s > 3500 lines 23s. > > So thats quite lot for me where I occasionally have files with 2K lines and I may need to browse their contents rapidly. > > Running my test script with the profiler in Pharo, I get this tree. I see that the message fromString: method is sent to Text class several times and that takes about 96% of the time (in all test cases). Any hints on how to reduce the number of times the method is invoked by glamour? > > tx in advance, > Usman > > Trace with 3.5K lines: > > - 23669 tallies, 23671 msec. > > **Tree** > -------------------------------- > Process: (40s) 516161536: nil > -------------------------------- > 100.0% {23669ms} GLMTabulator(GLMBrowser)>>openOn:with: > 100.0% {23667ms} GLMTabulator(GLMBrowser)>>openWith: > 100.0% {23667ms} GLMMorphicRenderer>>open: > 91.2% {21577ms} GLMMorphicWindowRenderer class(GLMMorphicWidgetRenderer class)>>render:from: > |91.2% {21577ms} GLMMorphicWindowRenderer>>render: > | 72.3% {17122ms} GLMSystemWindow(SystemWindow)>>addMorph:fullFrame: > | |72.3% {17122ms} PanelMorph>>adoptPaneColor: > | | 72.3% {17120ms} PanelMorph(Morph)>>adoptPaneColor: > | | 72.3% {17120ms} PanelMorph>>adoptPaneColor: > | | 72.3% {17120ms} PanelMorph(Morph)>>color: > | | 72.3% {17120ms} PanelMorph(Morph)>>changed > | | 72.3% {17120ms} PanelMorph(Morph)>>privateFullBounds > | | 72.3% {17120ms} PanelMorph(Morph)>>submorphBounds > | | 72.3% {17120ms} LazyTabGroupMorph(Morph)>>fullBounds > | | 72.3% {17120ms} LazyTabGroupMorph(Morph)>>doLayoutIn: > | | 65.1% {15418ms} TableLayout>>layout:in: > | | |65.1% {15418ms} TableLayout>>layoutTopToBottom:in: > | | | 65.1% {15418ms} PanelMorph(Morph)>>layoutInBounds: > | | | 65.1% {15418ms} PanelMorph(Morph)>>bounds: > | | | 65.1% {15418ms} PanelMorph(Morph)>>position: > | | | 65.1% {15418ms} PanelMorph(Morph)>>fullBounds > | | | 65.1% {15418ms} PanelMorph(Morph)>>doLayoutIn: > | | | 65.1% {15418ms} TableLayout>>layout:in: > | | | 65.1% {15418ms} TableLayout>>layoutTopToBottom:in: > | | | 65.1% {15418ms} GLMPluggableTextMorph(Morph)>>layoutInBounds: > | | | 65.1% {15418ms} GLMPluggableTextMorph(Morph)>>bounds: > | | | 65.1% {15418ms} GLMPluggableTextMorph(PluggableTextMorph)>>extent: > | | | 65.1% {15414ms} GLMTextMorphForEditView(TextMorph)>>extent: > | | | 65.1% {15414ms} GLMTextMorphForEditView(TextMorph)>>installEditorToReplace: > | | | 65.1% {15414ms} GLMSmalltalkEditor class(TextEditor class)>>forMorph: > | | | 65.1% {15414ms} GLMSmalltalkEditor(TextEditor)>>initWithMorph: > | | | 65.1% {15414ms} GLMSmalltalkEditor(TextEditor)>>resetState > | | | 65.1% {15414ms} GLMSmalltalkEditor(TextEditor)>>paragraph > | | | 65.1% {15414ms} GLMTextMorphForEditView(TextMorphForEditView)>>paragraph > | | | 65.1% {15414ms} GLMTextMorphForEditView(TextMorph)>>paragraph > | | | 65.1% {15414ms} Paragraph>>compose:style:from:in: > | | | 65.1% {15414ms} Paragraph>>composeAll > | | | 65.1% {15414ms} Paragraph>>multiComposeLinesFrom:to:delta:into:priorLines:atY: > | | | 65.1% {15414ms} TextComposer>>multiComposeLinesFrom:to:delta:into:priorLi...extStyle:text:container:wantsColumnBreaks: > | | | 65.1% {15414ms} TextComposer>>composeAllLines > | | | 65.1% {15414ms} TextComposer>>composeOneLine > | | | 65.1% {15398ms} TextComposer>>composeAllRectangles: > | | | 65.0% {15386ms} TextComposer>>composeEachRectangleIn: > | | | 64.9% {15369ms} MultiCompositionScanner>>composeFrom:inRectangle:firstLine:leftSide:rightSide: > | | | 63.9% {15116ms} Text class>>fromString: > | | | 63.3% {14992ms} primitives > | | 7.2% {1702ms} LazyTabGroupMorph(Morph)>>privateFullBounds > | | 7.2% {1702ms} LazyTabGroupMorph(Morph)>>submorphBounds > | | 7.2% {1702ms} PanelMorph(Morph)>>fullBounds > | | 7.2% {1702ms} PanelMorph(Morph)>>doLayoutIn: > | | 7.2% {1702ms} TableLayout>>layout:in: > | | 7.2% {1700ms} TableLayout>>layoutTopToBottom:in: > | | 7.2% {1700ms} GLMPluggableTextMorph(Morph)>>layoutInBounds: > | | 7.2% {1700ms} GLMPluggableTextMorph(Morph)>>bounds: > | | 7.2% {1700ms} GLMPluggableTextMorph(PluggableTextMorph)>>extent: > | | 7.2% {1696ms} GLMTextMorphForEditView(TextMorph)>>extent: > | | 7.2% {1696ms} GLMTextMorphForEditView(TextMorph)>>installEditorToReplace: > | | 7.2% {1696ms} GLMSmalltalkEditor class(TextEditor class)>>forMorph: > | | 7.2% {1696ms} GLMSmalltalkEditor(TextEditor)>>initWithMorph: > | | 7.2% {1696ms} GLMSmalltalkEditor(TextEditor)>>resetState > | | 7.2% {1696ms} GLMSmalltalkEditor(TextEditor)>>paragraph > | | 7.2% {1696ms} GLMTextMorphForEditView(TextMorphForEditView)>>paragraph > | | 7.2% {1696ms} GLMTextMorphForEditView(TextMorph)>>paragraph > | | 7.2% {1696ms} Paragraph>>compose:style:from:in: > | | 7.2% {1696ms} Paragraph>>composeAll > | | 7.2% {1696ms} Paragraph>>multiComposeLinesFrom:to:delta:into:priorLines:atY: > | | 7.2% {1696ms} TextComposer>>multiComposeLinesFrom:to:delta:into:priorLi...extStyle:text:container:wantsColumnBreaks: > | | 7.2% {1696ms} TextComposer>>composeAllLines > | | 7.2% {1696ms} TextComposer>>composeOneLine > | | 7.2% {1696ms} TextComposer>>composeAllRectangles: > | | 7.2% {1694ms} TextComposer>>composeEachRectangleIn: > | | 7.1% {1692ms} MultiCompositionScanner>>composeFrom:inRectangle:firstLine:leftSide:rightSide: > | | 6.9% {1629ms} Text class>>fromString: > | | 6.8% {1621ms} primitives > | 18.8% {4445ms} GLMMorphicWindowRenderer(GLMMorphicWidgetRenderer)>>renderObject: > | 18.8% {4445ms} GLMMorphicRenderer(GLMRenderer)>>render: > | 18.8% {4445ms} GLMTabulator>>renderGlamorouslyOn: > | 18.8% {4445ms} GLMMorphicRenderer>>renderTabulator: > | 18.8% {4445ms} GLMMorphicTabulatorRenderer class(GLMMorphicWidgetRenderer class)>>render:from: > | 18.8% {4445ms} GLMMorphicTabulatorRenderer>>render: > | 18.8% {4445ms} GLMMorphicTabulatorRenderer>>renderCustomRow:ofPane:inUI:inBrowser: > | 18.8% {4445ms} GLMMorphicTabulatorRenderer(GLMMorphicWidgetRenderer)>>renderObject: > | 18.8% {4445ms} GLMMorphicRenderer(GLMRenderer)>>render: > | 18.8% {4445ms} GLMPane>>renderGlamorouslyOn: > | 18.8% {4445ms} GLMMorphicRenderer>>renderPane: > | 18.8% {4445ms} GLMMorphicPaneRenderer class(GLMMorphicWidgetRenderer class)>>render:from: > | 18.8% {4445ms} GLMMorphicPaneRenderer>>render: > | 18.8% {4445ms} GLMMorphicPaneRenderer>>renderContainerFor: > | 18.8% {4443ms} GLMMorphicPaneRenderer(GLMMorphicWidgetRenderer)>>renderWithTitleOrNil: > | 18.8% {4443ms} GLMMorphicPaneRenderer(GLMMorphicWidgetRenderer)>>renderObject: > | 18.8% {4443ms} GLMMorphicRenderer(GLMRenderer)>>render: > | 18.8% {4443ms} GLMCompositePresentation>>renderGlamorouslyOn: > | 18.8% {4443ms} GLMTabbedArrangement>>renderGlamorouslyOn: > | 18.8% {4443ms} GLMMorphicRenderer>>renderTabbedCompositePresentation: > | 18.8% {4443ms} GLMMorphicTabbedRenderer class(GLMMorphicWidgetRenderer class)>>render:from: > | 18.8% {4443ms} GLMMorphicTabbedRenderer>>render: > | 18.8% {4443ms} GLMMorphicTabbedRenderer(GLMMorphicWidgetRenderer)>>renderWithTitleOrNil: > | 18.8% {4441ms} GLMMorphicTabbedRenderer(GLMMorphicWidgetRenderer)>>renderObject: > | 18.8% {4441ms} GLMMorphicRenderer(GLMRenderer)>>render: > | 18.8% {4441ms} GLMTextPresentation>>renderGlamorouslyOn: > | 18.8% {4441ms} GLMMorphicRenderer>>renderTextPresentation: > | 18.8% {4441ms} GLMMorphicTextRenderer class(GLMMorphicWidgetRenderer class)>>render:from: > | 18.8% {4441ms} GLMMorphicTextRenderer>>render: > | 18.8% {4441ms} GLMMorphicTextRenderer>>textMorphForModel: > | 18.8% {4441ms} GLMPluggableTextMorph class(PluggableTextMorph class)>>on:text:accept:readSelection:menu: > | 18.7% {4437ms} GLMPluggableTextMorph(PluggableTextMorph)>>on:text:accept:readSelection:menu: > | 18.7% {4437ms} GLMPluggableTextMorph(PluggableTextMorph)>>setText: > | 18.7% {4437ms} GLMPluggableTextMorph(PluggableTextMorph)>>setTextBasic: > | 10.2% {2407ms} GLMTextMorphForEditView(TextMorph)>>contents:wrappedTo: > | |10.2% {2407ms} GLMTextMorphForEditView(TextMorph)>>newContents: > | | 10.2% {2407ms} GLMTextMorphForEditView(TextMorphForEditView)>>paragraph > | | 10.2% {2407ms} GLMTextMorphForEditView(TextMorph)>>paragraph > | | 10.2% {2407ms} Paragraph>>compose:style:from:in: > | | 10.2% {2407ms} Paragraph>>composeAll > | | 10.2% {2407ms} Paragraph>>multiComposeLinesFrom:to:delta:into:priorLines:atY: > | | 10.2% {2407ms} TextComposer>>multiComposeLinesFrom:to:delta:into:priorLi...extStyle:text:container:wantsColumnBreaks: > | | 10.2% {2407ms} TextComposer>>composeAllLines > | | 10.2% {2407ms} TextComposer>>composeOneLine > | | 10.2% {2403ms} TextComposer>>composeAllRectangles: > | | 10.1% {2401ms} TextComposer>>composeEachRectangleIn: > | | 10.1% {2397ms} MultiCompositionScanner>>composeFrom:inRectangle:firstLine:leftSide:rightSide: > | | 9.8% {2321ms} Text class>>fromString: > | | 9.7% {2299ms} primitives > | 8.6% {2030ms} GLMPluggableTextMorph(ScrollPane)>>setScrollDeltas > | 8.6% {2028ms} GLMPluggableTextMorph(ScrollPane)>>hideOrShowScrollBars > | 8.6% {2028ms} GLMPluggableTextMorph(ScrollPane)>>vHideOrShowScrollBar > | 8.6% {2028ms} GLMPluggableTextMorph(ScrollPane)>>vShowScrollBar > | 8.6% {2028ms} GLMPluggableTextMorph(PluggableTextMorph)>>resetExtent > | 8.6% {2026ms} GLMPluggableTextMorph(PluggableTextMorph)>>extent: > | 8.6% {2026ms} GLMTextMorphForEditView(TextMorph)>>extent: > | 8.6% {2026ms} GLMTextMorphForEditView(TextMorph)>>installEditorToReplace: > | 8.6% {2026ms} GLMSmalltalkEditor class(TextEditor class)>>forMorph: > | 8.6% {2026ms} GLMSmalltalkEditor(TextEditor)>>initWithMorph: > | 8.6% {2026ms} GLMSmalltalkEditor(TextEditor)>>resetState > | 8.6% {2026ms} GLMSmalltalkEditor(TextEditor)>>paragraph > | 8.6% {2026ms} GLMTextMorphForEditView(TextMorphForEditView)>>paragraph > | 8.6% {2026ms} GLMTextMorphForEditView(TextMorph)>>paragraph > | 8.6% {2026ms} Paragraph>>compose:style:from:in: > | 8.6% {2026ms} Paragraph>>composeAll > | 8.6% {2026ms} Paragraph>>multiComposeLinesFrom:to:delta:into:priorLines:atY: > | 8.6% {2026ms} TextComposer>>multiComposeLinesFrom:to:delta:into:priorLi...extStyle:text:container:wantsColumnBreaks: > | 8.6% {2026ms} TextComposer>>composeAllLines > | 8.6% {2026ms} TextComposer>>composeOneLine > | 8.6% {2024ms} TextComposer>>composeAllRectangles: > | 8.5% {2020ms} TextComposer>>composeEachRectangleIn: > | 8.5% {2016ms} MultiCompositionScanner>>composeFrom:inRectangle:firstLine:leftSide:rightSide: > | 8.3% {1956ms} Text class>>fromString: > | 8.2% {1950ms} primitives > 8.8% {2090ms} GLMSystemWindow(Morph)>>openInWorld > 8.8% {2090ms} GLMSystemWindow(SystemWindow)>>openInWorld: > 8.8% {2079ms} GLMSystemWindow(Morph)>>bounds: > 5.2% {1229ms} GLMSystemWindow(SystemWindow)>>position: > |5.2% {1229ms} GLMSystemWindow(Morph)>>position: > | 5.2% {1229ms} GLMSystemWindow(Morph)>>fullBounds > | 5.2% {1229ms} GLMSystemWindow(Morph)>>doLayoutIn: > | 5.2% {1229ms} GLMSystemWindow(Morph)>>privateFullBounds > | 5.2% {1229ms} GLMSystemWindow(Morph)>>submorphBounds > | 5.2% {1229ms} PanelMorph(Morph)>>fullBounds > | 5.2% {1229ms} PanelMorph(Morph)>>doLayoutIn: > | 5.2% {1229ms} PanelMorph(Morph)>>privateFullBounds > | 5.2% {1229ms} PanelMorph(Morph)>>submorphBounds > | 5.2% {1229ms} PanelMorph(Morph)>>fullBounds > | 5.2% {1229ms} PanelMorph(Morph)>>doLayoutIn: > | 5.2% {1229ms} PanelMorph(Morph)>>privateFullBounds > | 5.2% {1229ms} PanelMorph(Morph)>>submorphBounds > | 5.2% {1229ms} LazyTabGroupMorph(Morph)>>fullBounds > | 5.2% {1229ms} LazyTabGroupMorph(Morph)>>doLayoutIn: > | 5.2% {1229ms} LazyTabGroupMorph(Morph)>>privateFullBounds > | 5.2% {1229ms} LazyTabGroupMorph(Morph)>>submorphBounds > | 5.2% {1229ms} PanelMorph(Morph)>>fullBounds > | 5.2% {1229ms} PanelMorph(Morph)>>doLayoutIn: > | 5.2% {1229ms} TableLayout>>layout:in: > | 5.2% {1227ms} TableLayout>>layoutTopToBottom:in: > | 5.2% {1227ms} GLMPluggableTextMorph(Morph)>>layoutInBounds: > | 5.2% {1227ms} GLMPluggableTextMorph(Morph)>>bounds: > | 5.2% {1227ms} GLMPluggableTextMorph(PluggableTextMorph)>>extent: > | 5.2% {1225ms} GLMTextMorphForEditView(TextMorph)>>extent: > | 5.2% {1225ms} GLMTextMorphForEditView(TextMorph)>>installEditorToReplace: > | 5.2% {1225ms} GLMSmalltalkEditor class(TextEditor class)>>forMorph: > | 5.2% {1225ms} GLMSmalltalkEditor(TextEditor)>>initWithMorph: > | 5.2% {1225ms} GLMSmalltalkEditor(TextEditor)>>resetState > | 5.2% {1225ms} GLMSmalltalkEditor(TextEditor)>>paragraph > | 5.2% {1225ms} GLMTextMorphForEditView(TextMorphForEditView)>>paragraph > | 5.2% {1225ms} GLMTextMorphForEditView(TextMorph)>>paragraph > | 5.2% {1225ms} Paragraph>>compose:style:from:in: > | 5.2% {1225ms} Paragraph>>composeAll > | 5.2% {1225ms} Paragraph>>multiComposeLinesFrom:to:delta:into:priorLines:atY: > | 5.2% {1225ms} TextComposer>>multiComposeLinesFrom:to:delta:into:priorLi...extStyle:text:container:wantsColumnBreaks: > | 5.2% {1225ms} TextComposer>>composeAllLines > | 5.2% {1225ms} TextComposer>>composeOneLine > | 5.2% {1225ms} TextComposer>>composeAllRectangles: > | 5.2% {1225ms} TextComposer>>composeEachRectangleIn: > | 5.2% {1225ms} MultiCompositionScanner>>composeFrom:inRectangle:firstLine:leftSide:rightSide: > | 5.0% {1187ms} Text class>>fromString: > | 5.0% {1177ms} primitives > 3.6% {850ms} GLMSystemWindow>>extent: > 3.6% {850ms} GLMSystemWindow(Morph)>>fullBounds > 3.6% {850ms} GLMSystemWindow(Morph)>>doLayoutIn: > 3.6% {850ms} GLMSystemWindow(Morph)>>privateFullBounds > 3.6% {850ms} GLMSystemWindow(Morph)>>submorphBounds > 3.6% {850ms} PanelMorph(Morph)>>fullBounds > 3.6% {850ms} PanelMorph(Morph)>>doLayoutIn: > 3.6% {850ms} PanelMorph(Morph)>>privateFullBounds > 3.6% {850ms} PanelMorph(Morph)>>submorphBounds > 3.6% {850ms} PanelMorph(Morph)>>fullBounds > 3.6% {850ms} PanelMorph(Morph)>>doLayoutIn: > 3.6% {850ms} PanelMorph(Morph)>>privateFullBounds > 3.6% {850ms} PanelMorph(Morph)>>submorphBounds > 3.6% {850ms} LazyTabGroupMorph(Morph)>>fullBounds > 3.6% {850ms} LazyTabGroupMorph(Morph)>>doLayoutIn: > 3.6% {850ms} LazyTabGroupMorph(Morph)>>privateFullBounds > 3.6% {850ms} LazyTabGroupMorph(Morph)>>submorphBounds > 3.6% {850ms} PanelMorph(Morph)>>fullBounds > 3.6% {850ms} PanelMorph(Morph)>>doLayoutIn: > 3.6% {850ms} TableLayout>>layout:in: > 3.6% {850ms} TableLayout>>layoutTopToBottom:in: > 3.6% {848ms} GLMPluggableTextMorph(Morph)>>layoutInBounds: > 3.6% {848ms} GLMPluggableTextMorph(Morph)>>bounds: > 3.6% {848ms} GLMPluggableTextMorph(PluggableTextMorph)>>extent: > 3.6% {848ms} GLMTextMorphForEditView(TextMorph)>>extent: > 3.6% {848ms} GLMTextMorphForEditView(TextMorph)>>installEditorToReplace: > 3.6% {848ms} GLMSmalltalkEditor class(TextEditor class)>>forMorph: > 3.6% {848ms} GLMSmalltalkEditor(TextEditor)>>initWithMorph: > 3.6% {848ms} GLMSmalltalkEditor(TextEditor)>>resetState > 3.6% {848ms} GLMSmalltalkEditor(TextEditor)>>paragraph > 3.6% {848ms} GLMTextMorphForEditView(TextMorphForEditView)>>paragraph > 3.6% {848ms} GLMTextMorphForEditView(TextMorph)>>paragraph > 3.6% {848ms} Paragraph>>compose:style:from:in: > 3.6% {848ms} Paragraph>>composeAll > 3.6% {848ms} Paragraph>>multiComposeLinesFrom:to:delta:into:priorLines:atY: > 3.6% {848ms} TextComposer>>multiComposeLinesFrom:to:delta:into:priorLi...extStyle:text:container:wantsColumnBreaks: > 3.6% {848ms} TextComposer>>composeAllLines > 3.6% {846ms} TextComposer>>composeOneLine > 3.6% {846ms} TextComposer>>composeAllRectangles: > 3.6% {844ms} TextComposer>>composeEachRectangleIn: > 3.6% {844ms} MultiCompositionScanner>>composeFrom:inRectangle:firstLine:leftSide:rightSide: > 3.4% {807ms} Text class>>fromString: > 3.4% {802ms} primitives > **Leaves** > 96.5% {22842ms} Text class>>fromString: > > **Memory** > old -4,940,088 bytes > young +69,144 bytes > used -4,870,944 bytes > free -1,051,976 bytes > > **GCs** > full 3 totalling 1,428ms (6.0% uptime), avg 476.0ms > incr 16030 totalling 15,162ms (64.0% uptime), avg 1.0ms > tenures 42 (avg 381 GCs/tenure) > root table 0 overflows > > _______________________________________________ > Moose-dev mailing list > [hidden email] > https://www.iam.unibe.ch/mailman/listinfo/moose-dev _______________________________________________ Moose-dev mailing list [hidden email] https://www.iam.unibe.ch/mailman/listinfo/moose-dev |
In reply to this post by Usman Bhatti
Hmm, I would like to know the answer as well.
As far as I can tell, the problem is given by transforming the String into Text, and this is done by PluggableTextMorph. Does anyone have a clue on how to proceed when we want to display a large amount of text in a Morph? Cheers, Doru On Mon, Jul 23, 2012 at 5:36 AM, Usman Bhatti <[hidden email]> wrote: > Hello all, > > I am working with text presentation in Glamour: the browser is used to show > the contents of code files. I noted that the time to display the contents of > a file (almost) exponentially grows with the size of the file. So, > performing tests on files of three different sizes, I obtain the following > response times (using Pharo profiler): > 1000 lines 2s > 2500 lines 11s > 3500 lines 23s. > > So thats quite lot for me where I occasionally have files with 2K lines and > I may need to browse their contents rapidly. > > Running my test script with the profiler in Pharo, I get this tree. I see > that the message fromString: method is sent to Text class several times and > that takes about 96% of the time (in all test cases). Any hints on how to > reduce the number of times the method is invoked by glamour? > > tx in advance, > Usman > > Trace with 3.5K lines: > > - 23669 tallies, 23671 msec. > > **Tree** > -------------------------------- > Process: (40s) 516161536: nil > -------------------------------- > 100.0% {23669ms} GLMTabulator(GLMBrowser)>>openOn:with: > 100.0% {23667ms} GLMTabulator(GLMBrowser)>>openWith: > 100.0% {23667ms} GLMMorphicRenderer>>open: > 91.2% {21577ms} GLMMorphicWindowRenderer > class(GLMMorphicWidgetRenderer class)>>render:from: > |91.2% {21577ms} GLMMorphicWindowRenderer>>render: > | 72.3% {17122ms} > GLMSystemWindow(SystemWindow)>>addMorph:fullFrame: > | |72.3% {17122ms} PanelMorph>>adoptPaneColor: > | | 72.3% {17120ms} PanelMorph(Morph)>>adoptPaneColor: > | | 72.3% {17120ms} PanelMorph>>adoptPaneColor: > | | 72.3% {17120ms} PanelMorph(Morph)>>color: > | | 72.3% {17120ms} PanelMorph(Morph)>>changed > | | 72.3% {17120ms} PanelMorph(Morph)>>privateFullBounds > | | 72.3% {17120ms} PanelMorph(Morph)>>submorphBounds > | | 72.3% {17120ms} > LazyTabGroupMorph(Morph)>>fullBounds > | | 72.3% {17120ms} > LazyTabGroupMorph(Morph)>>doLayoutIn: > | | 65.1% {15418ms} TableLayout>>layout:in: > | | |65.1% {15418ms} > TableLayout>>layoutTopToBottom:in: > | | | 65.1% {15418ms} > PanelMorph(Morph)>>layoutInBounds: > | | | 65.1% {15418ms} > PanelMorph(Morph)>>bounds: > | | | 65.1% {15418ms} > PanelMorph(Morph)>>position: > | | | 65.1% {15418ms} > PanelMorph(Morph)>>fullBounds > | | | 65.1% {15418ms} > PanelMorph(Morph)>>doLayoutIn: > | | | 65.1% {15418ms} > TableLayout>>layout:in: > | | | 65.1% {15418ms} > TableLayout>>layoutTopToBottom:in: > | | | 65.1% {15418ms} > GLMPluggableTextMorph(Morph)>>layoutInBounds: > | | | 65.1% {15418ms} > GLMPluggableTextMorph(Morph)>>bounds: > | | | 65.1% {15418ms} > GLMPluggableTextMorph(PluggableTextMorph)>>extent: > | | | 65.1% {15414ms} > GLMTextMorphForEditView(TextMorph)>>extent: > | | | 65.1% {15414ms} > GLMTextMorphForEditView(TextMorph)>>installEditorToReplace: > | | | 65.1% {15414ms} > GLMSmalltalkEditor class(TextEditor class)>>forMorph: > | | | 65.1% > {15414ms} GLMSmalltalkEditor(TextEditor)>>initWithMorph: > | | | 65.1% > {15414ms} GLMSmalltalkEditor(TextEditor)>>resetState > | | | 65.1% > {15414ms} GLMSmalltalkEditor(TextEditor)>>paragraph > | | | 65.1% > {15414ms} GLMTextMorphForEditView(TextMorphForEditView)>>paragraph > | | | 65.1% > {15414ms} GLMTextMorphForEditView(TextMorph)>>paragraph > | | | > 65.1% {15414ms} Paragraph>>compose:style:from:in: > | | | > 65.1% {15414ms} Paragraph>>composeAll > | | | > 65.1% {15414ms} > Paragraph>>multiComposeLinesFrom:to:delta:into:priorLines:atY: > | | | > 65.1% {15414ms} > TextComposer>>multiComposeLinesFrom:to:delta:into:priorLi...extStyle:text:container:wantsColumnBreaks: > | | | > 65.1% {15414ms} TextComposer>>composeAllLines > | | | > 65.1% {15414ms} TextComposer>>composeOneLine > | | | > 65.1% {15398ms} TextComposer>>composeAllRectangles: > | | | > 65.0% {15386ms} TextComposer>>composeEachRectangleIn: > | | | > 64.9% {15369ms} > MultiCompositionScanner>>composeFrom:inRectangle:firstLine:leftSide:rightSide: > | | | > 63.9% {15116ms} Text class>>fromString: > | | | > 63.3% {14992ms} primitives > | | 7.2% {1702ms} > LazyTabGroupMorph(Morph)>>privateFullBounds > | | 7.2% {1702ms} > LazyTabGroupMorph(Morph)>>submorphBounds > | | 7.2% {1702ms} > PanelMorph(Morph)>>fullBounds > | | 7.2% {1702ms} > PanelMorph(Morph)>>doLayoutIn: > | | 7.2% {1702ms} > TableLayout>>layout:in: > | | 7.2% {1700ms} > TableLayout>>layoutTopToBottom:in: > | | 7.2% {1700ms} > GLMPluggableTextMorph(Morph)>>layoutInBounds: > | | 7.2% {1700ms} > GLMPluggableTextMorph(Morph)>>bounds: > | | 7.2% {1700ms} > GLMPluggableTextMorph(PluggableTextMorph)>>extent: > | | 7.2% {1696ms} > GLMTextMorphForEditView(TextMorph)>>extent: > | | 7.2% {1696ms} > GLMTextMorphForEditView(TextMorph)>>installEditorToReplace: > | | 7.2% {1696ms} > GLMSmalltalkEditor class(TextEditor class)>>forMorph: > | | 7.2% {1696ms} > GLMSmalltalkEditor(TextEditor)>>initWithMorph: > | | 7.2% {1696ms} > GLMSmalltalkEditor(TextEditor)>>resetState > | | 7.2% {1696ms} > GLMSmalltalkEditor(TextEditor)>>paragraph > | | 7.2% {1696ms} > GLMTextMorphForEditView(TextMorphForEditView)>>paragraph > | | 7.2% > {1696ms} GLMTextMorphForEditView(TextMorph)>>paragraph > | | 7.2% > {1696ms} Paragraph>>compose:style:from:in: > | | 7.2% > {1696ms} Paragraph>>composeAll > | | 7.2% > {1696ms} Paragraph>>multiComposeLinesFrom:to:delta:into:priorLines:atY: > | | 7.2% > {1696ms} > TextComposer>>multiComposeLinesFrom:to:delta:into:priorLi...extStyle:text:container:wantsColumnBreaks: > | | > 7.2% {1696ms} TextComposer>>composeAllLines > | | > 7.2% {1696ms} TextComposer>>composeOneLine > | | > 7.2% {1696ms} TextComposer>>composeAllRectangles: > | | > 7.2% {1694ms} TextComposer>>composeEachRectangleIn: > | | > 7.1% {1692ms} > MultiCompositionScanner>>composeFrom:inRectangle:firstLine:leftSide:rightSide: > | | > 6.9% {1629ms} Text class>>fromString: > | | > 6.8% {1621ms} primitives > | 18.8% {4445ms} > GLMMorphicWindowRenderer(GLMMorphicWidgetRenderer)>>renderObject: > | 18.8% {4445ms} GLMMorphicRenderer(GLMRenderer)>>render: > | 18.8% {4445ms} GLMTabulator>>renderGlamorouslyOn: > | 18.8% {4445ms} GLMMorphicRenderer>>renderTabulator: > | 18.8% {4445ms} GLMMorphicTabulatorRenderer > class(GLMMorphicWidgetRenderer class)>>render:from: > | 18.8% {4445ms} GLMMorphicTabulatorRenderer>>render: > | 18.8% {4445ms} > GLMMorphicTabulatorRenderer>>renderCustomRow:ofPane:inUI:inBrowser: > | 18.8% {4445ms} > GLMMorphicTabulatorRenderer(GLMMorphicWidgetRenderer)>>renderObject: > | 18.8% {4445ms} > GLMMorphicRenderer(GLMRenderer)>>render: > | 18.8% {4445ms} GLMPane>>renderGlamorouslyOn: > | 18.8% {4445ms} > GLMMorphicRenderer>>renderPane: > | 18.8% {4445ms} GLMMorphicPaneRenderer > class(GLMMorphicWidgetRenderer class)>>render:from: > | 18.8% {4445ms} > GLMMorphicPaneRenderer>>render: > | 18.8% {4445ms} > GLMMorphicPaneRenderer>>renderContainerFor: > | 18.8% {4443ms} > GLMMorphicPaneRenderer(GLMMorphicWidgetRenderer)>>renderWithTitleOrNil: > | 18.8% {4443ms} > GLMMorphicPaneRenderer(GLMMorphicWidgetRenderer)>>renderObject: > | 18.8% {4443ms} > GLMMorphicRenderer(GLMRenderer)>>render: > | 18.8% {4443ms} > GLMCompositePresentation>>renderGlamorouslyOn: > | 18.8% {4443ms} > GLMTabbedArrangement>>renderGlamorouslyOn: > | 18.8% {4443ms} > GLMMorphicRenderer>>renderTabbedCompositePresentation: > | 18.8% {4443ms} > GLMMorphicTabbedRenderer class(GLMMorphicWidgetRenderer class)>>render:from: > | 18.8% {4443ms} > GLMMorphicTabbedRenderer>>render: > | 18.8% {4443ms} > GLMMorphicTabbedRenderer(GLMMorphicWidgetRenderer)>>renderWithTitleOrNil: > | 18.8% {4441ms} > GLMMorphicTabbedRenderer(GLMMorphicWidgetRenderer)>>renderObject: > | 18.8% {4441ms} > GLMMorphicRenderer(GLMRenderer)>>render: > | 18.8% {4441ms} > GLMTextPresentation>>renderGlamorouslyOn: > | 18.8% > {4441ms} GLMMorphicRenderer>>renderTextPresentation: > | 18.8% > {4441ms} GLMMorphicTextRenderer class(GLMMorphicWidgetRenderer > class)>>render:from: > | 18.8% > {4441ms} GLMMorphicTextRenderer>>render: > | 18.8% > {4441ms} GLMMorphicTextRenderer>>textMorphForModel: > | 18.8% > {4441ms} GLMPluggableTextMorph class(PluggableTextMorph > class)>>on:text:accept:readSelection:menu: > | > 18.7% {4437ms} > GLMPluggableTextMorph(PluggableTextMorph)>>on:text:accept:readSelection:menu: > | > 18.7% {4437ms} GLMPluggableTextMorph(PluggableTextMorph)>>setText: > | > 18.7% {4437ms} GLMPluggableTextMorph(PluggableTextMorph)>>setTextBasic: > | > 10.2% {2407ms} GLMTextMorphForEditView(TextMorph)>>contents:wrappedTo: > | > |10.2% {2407ms} GLMTextMorphForEditView(TextMorph)>>newContents: > | > | 10.2% {2407ms} GLMTextMorphForEditView(TextMorphForEditView)>>paragraph > | > | 10.2% {2407ms} GLMTextMorphForEditView(TextMorph)>>paragraph > | > | 10.2% {2407ms} Paragraph>>compose:style:from:in: > | > | 10.2% {2407ms} Paragraph>>composeAll > | > | 10.2% {2407ms} > Paragraph>>multiComposeLinesFrom:to:delta:into:priorLines:atY: > | > | 10.2% {2407ms} > TextComposer>>multiComposeLinesFrom:to:delta:into:priorLi...extStyle:text:container:wantsColumnBreaks: > | > | 10.2% {2407ms} TextComposer>>composeAllLines > | > | 10.2% {2407ms} TextComposer>>composeOneLine > | > | 10.2% {2403ms} TextComposer>>composeAllRectangles: > | > | 10.1% {2401ms} TextComposer>>composeEachRectangleIn: > | > | 10.1% {2397ms} > MultiCompositionScanner>>composeFrom:inRectangle:firstLine:leftSide:rightSide: > | > | 9.8% {2321ms} Text class>>fromString: > | > | 9.7% {2299ms} primitives > | > 8.6% {2030ms} GLMPluggableTextMorph(ScrollPane)>>setScrollDeltas > | > 8.6% {2028ms} GLMPluggableTextMorph(ScrollPane)>>hideOrShowScrollBars > | > 8.6% {2028ms} GLMPluggableTextMorph(ScrollPane)>>vHideOrShowScrollBar > | > 8.6% {2028ms} GLMPluggableTextMorph(ScrollPane)>>vShowScrollBar > | > 8.6% {2028ms} GLMPluggableTextMorph(PluggableTextMorph)>>resetExtent > | > 8.6% {2026ms} GLMPluggableTextMorph(PluggableTextMorph)>>extent: > | > 8.6% {2026ms} GLMTextMorphForEditView(TextMorph)>>extent: > | > 8.6% {2026ms} GLMTextMorphForEditView(TextMorph)>>installEditorToReplace: > | > 8.6% {2026ms} GLMSmalltalkEditor class(TextEditor class)>>forMorph: > | > 8.6% {2026ms} GLMSmalltalkEditor(TextEditor)>>initWithMorph: > | > 8.6% {2026ms} GLMSmalltalkEditor(TextEditor)>>resetState > | > 8.6% {2026ms} GLMSmalltalkEditor(TextEditor)>>paragraph > | > 8.6% {2026ms} GLMTextMorphForEditView(TextMorphForEditView)>>paragraph > | > 8.6% {2026ms} GLMTextMorphForEditView(TextMorph)>>paragraph > | > 8.6% {2026ms} Paragraph>>compose:style:from:in: > | > 8.6% {2026ms} Paragraph>>composeAll > | > 8.6% {2026ms} Paragraph>>multiComposeLinesFrom:to:delta:into:priorLines:atY: > | > 8.6% {2026ms} > TextComposer>>multiComposeLinesFrom:to:delta:into:priorLi...extStyle:text:container:wantsColumnBreaks: > | > 8.6% {2026ms} TextComposer>>composeAllLines > | > 8.6% {2026ms} TextComposer>>composeOneLine > | > 8.6% {2024ms} TextComposer>>composeAllRectangles: > | > 8.5% {2020ms} TextComposer>>composeEachRectangleIn: > | > 8.5% {2016ms} > MultiCompositionScanner>>composeFrom:inRectangle:firstLine:leftSide:rightSide: > | > 8.3% {1956ms} Text class>>fromString: > | > 8.2% {1950ms} primitives > 8.8% {2090ms} GLMSystemWindow(Morph)>>openInWorld > 8.8% {2090ms} GLMSystemWindow(SystemWindow)>>openInWorld: > 8.8% {2079ms} GLMSystemWindow(Morph)>>bounds: > 5.2% {1229ms} GLMSystemWindow(SystemWindow)>>position: > |5.2% {1229ms} GLMSystemWindow(Morph)>>position: > | 5.2% {1229ms} GLMSystemWindow(Morph)>>fullBounds > | 5.2% {1229ms} GLMSystemWindow(Morph)>>doLayoutIn: > | 5.2% {1229ms} GLMSystemWindow(Morph)>>privateFullBounds > | 5.2% {1229ms} GLMSystemWindow(Morph)>>submorphBounds > | 5.2% {1229ms} PanelMorph(Morph)>>fullBounds > | 5.2% {1229ms} PanelMorph(Morph)>>doLayoutIn: > | 5.2% {1229ms} > PanelMorph(Morph)>>privateFullBounds > | 5.2% {1229ms} > PanelMorph(Morph)>>submorphBounds > | 5.2% {1229ms} PanelMorph(Morph)>>fullBounds > | 5.2% {1229ms} > PanelMorph(Morph)>>doLayoutIn: > | 5.2% {1229ms} > PanelMorph(Morph)>>privateFullBounds > | 5.2% {1229ms} > PanelMorph(Morph)>>submorphBounds > | 5.2% {1229ms} > LazyTabGroupMorph(Morph)>>fullBounds > | 5.2% {1229ms} > LazyTabGroupMorph(Morph)>>doLayoutIn: > | 5.2% {1229ms} > LazyTabGroupMorph(Morph)>>privateFullBounds > | 5.2% {1229ms} > LazyTabGroupMorph(Morph)>>submorphBounds > | 5.2% {1229ms} > PanelMorph(Morph)>>fullBounds > | 5.2% {1229ms} > PanelMorph(Morph)>>doLayoutIn: > | 5.2% {1229ms} > TableLayout>>layout:in: > | 5.2% {1227ms} > TableLayout>>layoutTopToBottom:in: > | 5.2% {1227ms} > GLMPluggableTextMorph(Morph)>>layoutInBounds: > | 5.2% {1227ms} > GLMPluggableTextMorph(Morph)>>bounds: > | 5.2% {1227ms} > GLMPluggableTextMorph(PluggableTextMorph)>>extent: > | 5.2% {1225ms} > GLMTextMorphForEditView(TextMorph)>>extent: > | 5.2% > {1225ms} GLMTextMorphForEditView(TextMorph)>>installEditorToReplace: > | 5.2% > {1225ms} GLMSmalltalkEditor class(TextEditor class)>>forMorph: > | 5.2% > {1225ms} GLMSmalltalkEditor(TextEditor)>>initWithMorph: > | 5.2% > {1225ms} GLMSmalltalkEditor(TextEditor)>>resetState > | > 5.2% {1225ms} GLMSmalltalkEditor(TextEditor)>>paragraph > | > 5.2% {1225ms} GLMTextMorphForEditView(TextMorphForEditView)>>paragraph > | > 5.2% {1225ms} GLMTextMorphForEditView(TextMorph)>>paragraph > | > 5.2% {1225ms} Paragraph>>compose:style:from:in: > | > 5.2% {1225ms} Paragraph>>composeAll > | > 5.2% {1225ms} Paragraph>>multiComposeLinesFrom:to:delta:into:priorLines:atY: > | > 5.2% {1225ms} > TextComposer>>multiComposeLinesFrom:to:delta:into:priorLi...extStyle:text:container:wantsColumnBreaks: > | > 5.2% {1225ms} TextComposer>>composeAllLines > | > 5.2% {1225ms} TextComposer>>composeOneLine > | > 5.2% {1225ms} TextComposer>>composeAllRectangles: > | > 5.2% {1225ms} TextComposer>>composeEachRectangleIn: > | > 5.2% {1225ms} > MultiCompositionScanner>>composeFrom:inRectangle:firstLine:leftSide:rightSide: > | > 5.0% {1187ms} Text class>>fromString: > | > 5.0% {1177ms} primitives > 3.6% {850ms} GLMSystemWindow>>extent: > 3.6% {850ms} GLMSystemWindow(Morph)>>fullBounds > 3.6% {850ms} GLMSystemWindow(Morph)>>doLayoutIn: > 3.6% {850ms} GLMSystemWindow(Morph)>>privateFullBounds > 3.6% {850ms} GLMSystemWindow(Morph)>>submorphBounds > 3.6% {850ms} PanelMorph(Morph)>>fullBounds > 3.6% {850ms} PanelMorph(Morph)>>doLayoutIn: > 3.6% {850ms} PanelMorph(Morph)>>privateFullBounds > 3.6% {850ms} PanelMorph(Morph)>>submorphBounds > 3.6% {850ms} PanelMorph(Morph)>>fullBounds > 3.6% {850ms} PanelMorph(Morph)>>doLayoutIn: > 3.6% {850ms} > PanelMorph(Morph)>>privateFullBounds > 3.6% {850ms} > PanelMorph(Morph)>>submorphBounds > 3.6% {850ms} > LazyTabGroupMorph(Morph)>>fullBounds > 3.6% {850ms} > LazyTabGroupMorph(Morph)>>doLayoutIn: > 3.6% {850ms} > LazyTabGroupMorph(Morph)>>privateFullBounds > 3.6% {850ms} > LazyTabGroupMorph(Morph)>>submorphBounds > 3.6% {850ms} > PanelMorph(Morph)>>fullBounds > 3.6% {850ms} > PanelMorph(Morph)>>doLayoutIn: > 3.6% {850ms} > TableLayout>>layout:in: > 3.6% {850ms} > TableLayout>>layoutTopToBottom:in: > 3.6% {848ms} > GLMPluggableTextMorph(Morph)>>layoutInBounds: > 3.6% {848ms} > GLMPluggableTextMorph(Morph)>>bounds: > 3.6% {848ms} > GLMPluggableTextMorph(PluggableTextMorph)>>extent: > 3.6% {848ms} > GLMTextMorphForEditView(TextMorph)>>extent: > 3.6% {848ms} > GLMTextMorphForEditView(TextMorph)>>installEditorToReplace: > 3.6% {848ms} > GLMSmalltalkEditor class(TextEditor class)>>forMorph: > 3.6% > {848ms} GLMSmalltalkEditor(TextEditor)>>initWithMorph: > 3.6% > {848ms} GLMSmalltalkEditor(TextEditor)>>resetState > 3.6% > {848ms} GLMSmalltalkEditor(TextEditor)>>paragraph > 3.6% > {848ms} GLMTextMorphForEditView(TextMorphForEditView)>>paragraph > > 3.6% {848ms} GLMTextMorphForEditView(TextMorph)>>paragraph > > 3.6% {848ms} Paragraph>>compose:style:from:in: > > 3.6% {848ms} Paragraph>>composeAll > > 3.6% {848ms} Paragraph>>multiComposeLinesFrom:to:delta:into:priorLines:atY: > > 3.6% {848ms} > TextComposer>>multiComposeLinesFrom:to:delta:into:priorLi...extStyle:text:container:wantsColumnBreaks: > > 3.6% {848ms} TextComposer>>composeAllLines > > 3.6% {846ms} TextComposer>>composeOneLine > > 3.6% {846ms} TextComposer>>composeAllRectangles: > > 3.6% {844ms} TextComposer>>composeEachRectangleIn: > > 3.6% {844ms} > MultiCompositionScanner>>composeFrom:inRectangle:firstLine:leftSide:rightSide: > > 3.4% {807ms} Text class>>fromString: > > 3.4% {802ms} primitives > **Leaves** > 96.5% {22842ms} Text class>>fromString: > > **Memory** > old -4,940,088 bytes > young +69,144 bytes > used -4,870,944 bytes > free -1,051,976 bytes > > **GCs** > full 3 totalling 1,428ms (6.0% uptime), avg 476.0ms > incr 16030 totalling 15,162ms (64.0% uptime), avg 1.0ms > tenures 42 (avg 381 GCs/tenure) > root table 0 overflows > > > _______________________________________________ > Moose-dev mailing list > [hidden email] > https://www.iam.unibe.ch/mailman/listinfo/moose-dev > -- www.tudorgirba.com "Every thing has its own flow" _______________________________________________ Moose-dev mailing list [hidden email] https://www.iam.unibe.ch/mailman/listinfo/moose-dev |
Free forum by Nabble | Edit this page |