Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 4 participants
- 144625 messages
[Pharo-project] Dr. Geo for acadamy
by Hilaire Fernandes
Hello,
Thinking aloud. May be I already discussed the following ideas with some of
you.
Dr. Geo is now mature enough to learn from it and to propose it as a tool
students in computer science and/or mathematics can use for final projects
or study projects.
The idea is to propose student programming projects around Dr. Geo. A list
of projects should be drafted and designed to be appropriate for students.
I am not really sure about the level of difficulties, the duration such
project could take, but listing ideas could be a good start. Moreover, I
don't know if the idea elaborated in this document make any sense, so your
feedback on that point would be greatly appreciated as well. Another
requirement could be to list why students will benefit working in a project
around Dr. Geo, to be done later if the idea take off.
Regarding Dr. Geo project itself the benefice is more to gain in visibility
and not in contributions coming from students work, indeed sudents will
more likely maintain the project only for the duration of their studies.
But more visibility on Dr. Geo can mean more long term contributors,
hopefully from the academic sector. Dr. Geo need it to scale up and to
compete with other alike project like GeoGebra where the contributors are
numerous. If not, Dr. Geo will remain an epiphenomena and the great concept
behind Dr. Geo, modify me from myself, will be lost.
Regarding the project ideas, I see two categories: projects of interest for
Dr. Geo and other Smalltalk ones and projects tightly related to Dr. Geo
core.
1. Projects of interest for Dr. Geo and other Smallktalk software:
- framework to render latex formula
- mini-worksheet package to embed in an application
- supplementary Polymorph widgets
- mini algebraic system for symbolic manipulation of mathematic expressions
- proof system, prolog or purely Smalltalk based
2. Projects tightly tied to Dr. Geo:
- SVG, EPS exporters
- new UI paradigm to build interactive sketch
- porting to other system, closely related to Virtual Machinery
- More constructions tools, it is a very good teachable as it dives you in
an application with a lot of design patterns in action. See following
document
https://blueprints.launchpad.net/drgeo/+spec/todo-to-implement-new-tool
There are more ideas.
If you think about any person involved in the academic sector, please
forward, this is why I wrote the document in Frenglish after all.
Thanks
Hilaire Fernandes
--
Dr. Geo - http://www.drgeo.eu
--
Dr. Geo - http://www.drgeo.eu
Aug. 13, 2012
[Pharo-project] Jenkins: Read-only file system
by Pavel Krivanek
Hi,
it seems that Jenkins is out of proper order. The jobs are failing
because of errors like:
Read-only file system
-- Pavel
Aug. 13, 2012
Re: [Pharo-project] [Lsehub-staff] Fwd: Performance of text presentation in Glamour
by Alexandre Bergel
For people curious of the visual output:
http://dl.dropbox.com/u/31543901/SmoothScrollingOfALargeText.png
The scrolling is amazing fast...
Cheers,
Alexandre
On Aug 12, 2012, at 12:03 PM, Alexandre Bergel <alexandre.bergel(a)me.com> wrote:
> No idea if this is of any help.
> Roassal seems to behave well with large files. Just do it the following script:
>
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> "Preambule. It includes the initialization. "
> | rawView view str |
> rawView := ROView new.
> view := ROMondrianViewBuilder view: rawView.
> "enter your script below"
> "-------------"
> "-------------"
>
> str := ''.
> 1 to: 4000 do: [ :nbLine |
> str := str , nbLine printString.
> 3 timesRepeat: [ str := str, ' hello world' ].
> str := str, String cr].
>
> view shape label.
> view node: str.
>
> "-------------"
> "-------------"
> "Below is the initiation of the menu and opening the visualization"
> ROEaselMorphic new populateMenuOn: view.
> view open
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>
> And there is absolutely no optimization. Something that I would like to include soon, is a way to color the text.
>
> Cheers,
> Alexandre
>
>
> On Aug 12, 2012, at 11:22 AM, Usman Bhatti <usman.bhatti(a)gmail.com> wrote:
>
>> Hello people,
>> The issue is getting a bit on our nerves so if someone can look into it during the next week, it'll be great. Me and Guillaume tried to have a look but it goes deep into the morphic layer of pharo and we do not have much time to allocate to this issue.
>> Someone with a better knowledge of morphs can provide a quick fix?
>>
>> Here is a link to the image that contains the scripts in its workspace to analyse the problem.
>> http://dl.dropbox.com/u/11804892/Moose-glam-perf.zip
>>
>> Let me know if you have problem with the image.
>>
>> tx in advance,
>> Usman
>>
>>> ---------- Forwarded message ----------
>>> From: Usman Bhatti <usman.bhatti(a)gmail.com>
>>> Date: Mon, Jul 23, 2012 at 5:36 AM
>>> Subject: Performance of text presentation in Glamour
>>> To: Moose-related development <moose-dev(a)iam.unibe.ch>
>>>
>>>
>>> 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
>>>
>>>
>>
>>
>>
>>
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Aug. 12, 2012
Re: [Pharo-project] New Adventure.
by David T. Lewis
On Sat, Aug 11, 2012 at 05:38:45PM -0300, Diogenes Moreira wrote:
> Hi folks, I wanna tell you my new adventure, that i'll start today.
>
> I'll be try compile and fix the VM and FFI for run on 64 bits systems,
>
> the idea is run dbxtalk over a Windows 2008 server..
>
> Any Clue o Tip are welcome.
>
Start by reading these:
http://lists.squeakfoundation.org/pipermail/vm-dev/2008-May/001945.html
http://bugs.squeak.org/view.php?id=7237
These patches have not been applied to any of the VMs, and it is likely
that some additional work will be needed to update the original work.
Dave
Aug. 12, 2012
Re: [Pharo-project] [Lsehub-staff] Fwd: Performance of text presentation in Glamour
by Alexandre Bergel
No idea if this is of any help.
Roassal seems to behave well with large files. Just do it the following script:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
"Preambule. It includes the initialization. "
| rawView view str |
rawView := ROView new.
view := ROMondrianViewBuilder view: rawView.
"enter your script below"
"-------------"
"-------------"
str := ''.
1 to: 4000 do: [ :nbLine |
str := str , nbLine printString.
3 timesRepeat: [ str := str, ' hello world' ].
str := str, String cr].
view shape label.
view node: str.
"-------------"
"-------------"
"Below is the initiation of the menu and opening the visualization"
ROEaselMorphic new populateMenuOn: view.
view open
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
And there is absolutely no optimization. Something that I would like to include soon, is a way to color the text.
Cheers,
Alexandre
On Aug 12, 2012, at 11:22 AM, Usman Bhatti <usman.bhatti(a)gmail.com> wrote:
> Hello people,
> The issue is getting a bit on our nerves so if someone can look into it during the next week, it'll be great. Me and Guillaume tried to have a look but it goes deep into the morphic layer of pharo and we do not have much time to allocate to this issue.
> Someone with a better knowledge of morphs can provide a quick fix?
>
> Here is a link to the image that contains the scripts in its workspace to analyse the problem.
> http://dl.dropbox.com/u/11804892/Moose-glam-perf.zip
>
> Let me know if you have problem with the image.
>
> tx in advance,
> Usman
>
> > ---------- Forwarded message ----------
> > From: Usman Bhatti <usman.bhatti(a)gmail.com>
> > Date: Mon, Jul 23, 2012 at 5:36 AM
> > Subject: Performance of text presentation in Glamour
> > To: Moose-related development <moose-dev(a)iam.unibe.ch>
> >
> >
> > 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
> >
> >
>
>
>
>
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Aug. 12, 2012
[Pharo-project] Fwd: [Lsehub-staff] Fwd: Performance of text presentation in Glamour
by Usman Bhatti
Hello people,
The issue is getting a bit on our nerves so if someone can look into it
during the next week, it'll be great. Me and Guillaume tried to have a look
but it goes deep into the morphic layer of pharo and we do not have much
time to allocate to this issue.
Someone with a better knowledge of morphs can provide a quick fix?
Here is a link to the image that contains the scripts in its workspace to
analyse the problem.
http://dl.dropbox.com/u/11804892/Moose-glam-perf.zip
Let me know if you have problem with the image.
tx in advance,
Usman
> ---------- Forwarded message ----------
> > From: Usman Bhatti <usman.bhatti(a)gmail.com>
> > Date: Mon, Jul 23, 2012 at 5:36 AM
> > Subject: Performance of text presentation in Glamour
> > To: Moose-related development <moose-dev(a)iam.unibe.ch>
> >
> >
> > 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
> >
> >
>
>
>
Aug. 12, 2012
Re: [Pharo-project] New Adventure.
by Igor Stasenko
On 11 August 2012 22:38, Diogenes Moreira <diogenes.moreira(a)gmail.com> wrote:
> Hi folks, I wanna tell you my new adventure, that i'll start today.
>
> I'll be try compile and fix the VM and FFI for run on 64 bits systems,
>
Cool.
> the idea is run dbxtalk over a Windows 2008 server..
>
> Any Clue o Tip are welcome.
>
Sure, i can help with what i can :)
> Best D,
>
>
> http://about.me/diogenes.moreira
>
--
Best regards,
Igor Stasenko.
Aug. 12, 2012
[Pharo-project] New Adventure.
by Diogenes Moreira
Hi folks, I wanna tell you my new adventure, that i'll start today.
I'll be try compile and fix the VM and FFI for run on 64 bits systems,
the idea is run dbxtalk over a Windows 2008 server..
Any Clue o Tip are welcome.
Best D,
http://about.me/diogenes.moreira
Aug. 11, 2012
Re: [Pharo-project] 'self halt' safety net
by Sean P. DeNigris
Igor Stasenko wrote
>
> in pharo you can use
> Halt now.
> which is imo the right way to do it..
>
> but i so get used to type 'self halt' .. its hard to get rid of bad
> habits. :)
>
One little carrot to use "Halt now." is that it opens the debugger on the
method with the halt in it instead of on Object>>halt, where you go to be
punished for using "self halt" ;) I just found that out because after
fighting to remove "self halt", I didn't get rid of my bad habit either, ha
ha
- S
--
View this message in context: http://forum.world.st/self-halt-safety-net-tp4643012p4643843.html
Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
Aug. 11, 2012
[Pharo-project] 4 days left!! - ESUG 2012 9th Innovation Technology Awards - Reminder
by jdelgado
[Sorry if you receive this message more than once]
ESUG 2012, 9th Innovation Technology Awards
REMINDER: 4 days to deadline!!
Have you written innovative Smalltalk? The developers of any Smalltalk-based
software can enter by submitting a 3-5min video of their software. Entrants
demo their systems in a session at the end of Monday August 27th 2012, after
which the conference attendees vote. (A vote consists in providing a sorted
list of 3 preferred pieces of software.)
The top 3 teams with the most innovative software will receive,
respectively, 500 Euros, 300 Euros and 200 Euros. The results are announced
in the Awards ceremony that is held during the social event.
Applicants should provide the following information on the conference
registration server. Once you have registered your personal info, an
'Awards' menu allows submitting your software. You can provide this
information when you first register, or login again later and update your
details. The registration server will open soon. You can start preparing
your software right now though.
Info to provide:
Name of the software
Licence information (free, shareware, or commercial)
Name of the Smalltalk dialect used
Name, Affiliation and Country of developers
Besides, it would be great if the submission could include:
URL for a video (3-5 min) showing a screencast / demo of the software
URL for downloading the software or at least a runnable demo
Deadline: August 15
Any Smalltalker can apply (students, companies, ...). The presented piece of
code/software should be written in Smalltalk or directly support Smalltalk
(e.g. Smalltalk VM). All Smalltalk dialects are accepted. The applicant
should be "strongly related" to the presented code, be it as an author, as
owner of the copyright/copyleft, or as an official representative of the
copyright/copyleft owner.
Bests,
Jordi
--
View this message in context: http://forum.world.st/4-days-left-ESUG-2012-9th-Innovation-Technology-Award…
Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
Aug. 11, 2012