Hi Alex,
Thank you for your investigation :).
What I will do:
- change the big node of DSM. I would to do it, and I have forgotten it. So I will do it
soon.
- wait for your coming to Lille: I want you show me your new profiler, which seems to be
cool.
Thank you.
Jannik
On Jun 22, 2010, at 00:54 , Alexandre Bergel wrote:
I spent some time on understand what's going on
with your code.
I have an answer, but no solution yet.
Clearly, MessageTally is of little help to understand why eDSM is slow. The bitmap
caching is not effective in your case, which is one big reason of the slowdown. The reason
is that your Mondrian view is defined as one unique node. This is not a problem, but your
node is really big. A square of more than 8000 pixels. 8000 x 8000 x 32 = 2,048,000,000. A
bitmap of that size weights 2Gb. Which is a bit a lot (expression used in Nice (FR) to say
it is a lot).
One idea, is to use the bitmap cache for inner nodes. However, probably due to my lake of
knowledge of Morphic, I cannot make it work the way I want.
Two solutions:
- decouple of visualization into smaller pieces. for example having a cell as a node just
above the root
- wait for my coming to Lille in a couple of weeks.
Side story: I found what the problem was by defining a small profiler. The screen shot
shows the activity of the MOEdge class. Frequencies of received messages by instance of
MOEdge are shown in the graphic. By doing a scrolling, the curve is moving, meaning that
instances of MOEdge receive message. This suggested me that the cache is not operating.
Cheers,
Alexandre
<Screen shot 2010-06-21 at 18.52.20.png>
On 19 Jun 2010, at 08:43, Laval Jannik wrote:
On Jun 19, 2010, at 14:31 , Tudor Girba wrote:
Hi Jannik,
From this trace, it looks like the time is spent on rendering.
I understand it is still slow, but did you notice any improvement since the caching? When
I tried eDSM, it looked significantly faster. I mean before I could not scroll at all, now
I can even if only slowly. Could you confirm this?
My experience is not so faster: before I could scroll slowly, now I can scroll slowly.
Maybe not as much as before, but the difference is not evident.
I will do some experiment to see more.
Cheers,
Jannik
Cheers,
Doru
On 19 Jun 2010, at 14:25, Laval Jannik wrote:
Hi All,
I do a "profile all UI" and a scroll in a eDSM.
The eDSM has been built on MooseModel of Moose itself and made with the 77 model
packages.
I hope the result can help.
Results follows:
============
--------------------------------
Process: (40s) 211550208: nil
--------------------------------
58.7% {12320ms} WorldState>>doOneCycleFor:
56.8% {11921ms} WorldState>>doOneCycleNowFor:
|54.9% {11522ms} WorldState>>displayWorldSafely:
| |54.9% {11522ms} PasteUpMorph>>displayWorld
| | 54.9% {11522ms} PasteUpMorph>>privateOuterDisplayWorld
| | 54.9% {11522ms} WorldState>>displayWorld:submorphs:
| | 54.9% {11522ms} WorldState>>drawWorld:submorphs:invalidAreasOn:
| | 54.9% {11522ms} FormCanvas(Canvas)>>fullDrawMorph:
| | 54.9% {11522ms} FormCanvas(Canvas)>>fullDraw:
| | 54.9% {11522ms} StandardWindow(Morph)>>fullDrawOn:
| | 54.9% {11522ms} StandardWindow(Morph)>>drawSubmorphsOn:
| | 54.9% {11522ms} FormCanvas(Canvas)>>fullDrawMorph:
| | 54.9% {11522ms} FormCanvas(Canvas)>>fullDraw:
| | 54.9% {11522ms} ScrollPane(Morph)>>fullDrawOn:
| | 54.9% {11522ms} ScrollPane(Morph)>>drawSubmorphsOn:
| | 54.9% {11522ms} FormCanvas(Canvas)>>fullDrawMorph:
| | 54.9% {11522ms} FormCanvas(Canvas)>>fullDraw:
| | 54.9% {11522ms} TransformMorph(Morph)>>fullDrawOn:
| | 54.8% {11501ms} TransformMorph>>drawSubmorphsOn:
| | 54.8% {11501ms}
FormCanvas(Canvas)>>fullDrawMorph:
| | 54.8% {11501ms}
FormCanvas(Canvas)>>fullDraw:
| | 54.8% {11501ms}
MOCanvas(Morph)>>fullDrawOn:
| | 54.8% {11501ms}
FormCanvas(Canvas)>>drawMorph:
| | 54.8% {11501ms}
FormCanvas(Canvas)>>draw:
| | 54.8% {11501ms} MOCanvas>>drawOn:
| | 54.8% {11501ms}
MORoot(MONode)>>displayOn:
| | 30.9% {6485ms}
MONode>>displayOn:
| | |18.1% {3799ms}
MOEdge>>displayOn:
| | | |17.1% {3589ms}
MOStraightLineShape>>display:on:
| | | | 5.8% {1217ms}
FormCanvas>>line:to:width:color:
| | | | |2.9% {609ms}
FormCanvas>>setFillColor:
| | | | | |1.4% {294ms}
GrafPort>>fillPattern:
| | | | | | 1.2% {252ms}
GrafPort(BitBlt)>>fillColor:
| | | | |1.1% {231ms}
GrafPort(BitBlt)>>drawFrom:to:
| | | | 3.3% {693ms}
MOStraightLineShape(MOLineShape)>>colorFor:
| | | | |3.1% {651ms}
MOEdge(MOGraphElement)>>cachedNamed:ifAbsentInitializeWith:
| | | | | 2.7% {567ms}
MOEdge(MOGraphElement)>>attributeAt:ifAbsent:
| | | | | 2.1% {441ms}
IdentityDictionary(Dictionary)>>at:ifAbsentPut:
| | | | | 1.9% {399ms}
IdentityDictionary(Dictionary)>>at:ifAbsent:
| | | | | 1.2% {252ms}
IdentityDictionary(HashedCollection)>>findElementOrNil:
| | | | 2.5% {525ms}
MOStraightLineShape(MOLineShape)>>widthFor:
| | | | |2.3% {483ms}
MOEdge(MOGraphElement)>>attributeAt:ifAbsent:
| | | | | 1.7% {357ms}
IdentityDictionary(Dictionary)>>at:ifAbsentPut:
| | | | | 1.5% {315ms}
IdentityDictionary(Dictionary)>>at:ifAbsent:
| | | | | 1.1% {231ms}
IdentityDictionary(HashedCollection)>>findElementOrNil:
| | | | 2.3% {483ms}
MOStraightLineShape(MOLineShape)>>getAttachPointsFor:
| | | | |1.9% {399ms}
MONode(MOGraphElement)>>isNotSelected
| | | | | 1.3% {273ms}
MONode(MOGraphElement)>>isSelected
| | | | 1.1% {231ms} Point>>abs
| | |12.2% {2561ms}
MONode>>displayOn:
| | | 8.4% {1763ms}
MOEdge>>displayOn:
| | | |8.0% {1679ms}
MOStraightLineShape>>display:on:
| | | | 2.6% {546ms}
FormCanvas>>line:to:width:color:
| | | | |1.3% {273ms}
FormCanvas>>setFillColor:
| | | | 1.5% {315ms}
MOStraightLineShape(MOLineShape)>>colorFor:
| | | | |1.4% {294ms}
MOEdge(MOGraphElement)>>cachedNamed:ifAbsentInitializeWith:
| | | | | 1.3% {273ms}
MOEdge(MOGraphElement)>>attributeAt:ifAbsent:
| | | | 1.3% {273ms}
MOStraightLineShape(MOLineShape)>>widthFor:
| | | | |1.2% {252ms}
MOEdge(MOGraphElement)>>attributeAt:ifAbsent:
| | | | 1.1% {231ms}
MOStraightLineShape(MOLineShape)>>getAttachPointsFor:
| | | 2.9% {609ms}
MONode>>displayOn:
| | | 2.1% {441ms}
MOEdge>>displayOn:
| | | 2.0% {420ms}
MOStraightLineShape>>display:on:
| | 23.4% {4911ms}
MOEdge>>displayOn:
| | 22.0% {4617ms}
MOStraightLineShape>>display:on:
| | 7.5% {1574ms}
FormCanvas>>line:to:width:color:
| | |3.5% {735ms}
FormCanvas>>setFillColor:
| | | |1.7% {357ms}
GrafPort>>fillPattern:
| | | | 1.5% {315ms}
GrafPort(BitBlt)>>fillColor:
| | | | 1.2% {252ms}
DisplayScreen(Form)>>bitPatternFor:
| | |1.4% {294ms}
GrafPort(BitBlt)>>drawFrom:to:
| | 3.9% {819ms}
MOStraightLineShape(MOLineShape)>>colorFor:
| | |3.7% {777ms}
MOEdge(MOGraphElement)>>cachedNamed:ifAbsentInitializeWith:
| | | 3.2% {672ms}
MOEdge(MOGraphElement)>>attributeAt:ifAbsent:
| | | 2.4% {504ms}
IdentityDictionary(Dictionary)>>at:ifAbsentPut:
| | | 2.1% {441ms}
IdentityDictionary(Dictionary)>>at:ifAbsent:
| | | 1.3% {273ms}
IdentityDictionary(HashedCollection)>>findElementOrNil:
| | 3.5% {735ms}
MOStraightLineShape(MOLineShape)>>widthFor:
| | |3.1% {651ms}
MOEdge(MOGraphElement)>>attributeAt:ifAbsent:
| | | 2.3% {483ms}
IdentityDictionary(Dictionary)>>at:ifAbsentPut:
| | | 2.1% {441ms}
IdentityDictionary(Dictionary)>>at:ifAbsent:
| | | 1.5% {315ms}
IdentityDictionary(HashedCollection)>>findElementOrNil:
| | | 1.0% {210ms}
IdentityDictionary>>scanFor:
| | 3.1% {651ms}
MOStraightLineShape(MOLineShape)>>getAttachPointsFor:
| | |2.6% {546ms}
MONode(MOGraphElement)>>isNotSelected
| | | 1.7% {357ms}
MONode(MOGraphElement)>>isSelected
| | 1.4% {294ms} Point>>abs
==============
Cheers,
Jannik
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
--
www.tudorgirba.com
"What we can governs what we wish."
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
---
Jannik Laval
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev