Hi Alex,
On 22 Jun 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.
Cool investigation, but I still do not understand what the problem
is :). Does that mean that all the time is spent on drawing, or
somewhere else? If it is not spent on drawing, now that we have the
caching of properties, do we still need the bitmap caching?
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.
Pretty cool :).How can we use it :)?
Cheers,
Doru
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
--
www.tudorgirba.com
"There are no old things, there are only old ways of looking at them."