Mondrian is slow (next step)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
43 messages Options
123
Reply | Threaded
Open this post in threaded view
|

Re: Mondrian is slow (next step)

jannik laval
Thank you Alex,

I modify the script,
Now it is really faster. I can scroll my eDSM (with 70 packages) without slowdown.
PS: I use also Cog VM :)

Cheers,
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
>>>> [hidden email]
>>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>
>>> --
>>> www.tudorgirba.com
>>>
>>> "What we can governs what we wish."
>>>
>>>
>>>
>>> _______________________________________________
>>> Moose-dev mailing list
>>> [hidden email]
>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>> ---
>> Jannik Laval
>>
>>
>> _______________________________________________
>> 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

---
Jannik Laval


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: Mondrian is slow (next step)

Alexandre Bergel-4
Cool!!!!

Alexandre


On 22 Jun 2010, at 05:30, Laval Jannik wrote:

> Thank you Alex,
>
> I modify the script,
> Now it is really faster. I can scroll my eDSM (with 70 packages) without slowdown.
> PS: I use also Cog VM :)
>
> Cheers,
> 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
>>>>> [hidden email]
>>>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>>
>>>> --
>>>> www.tudorgirba.com
>>>>
>>>> "What we can governs what we wish."
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Moose-dev mailing list
>>>> [hidden email]
>>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>
>>> ---
>>> Jannik Laval
>>>
>>>
>>> _______________________________________________
>>> 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
>
> ---
> Jannik Laval
>
>
> _______________________________________________
> 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
Reply | Threaded
Open this post in threaded view
|

Re: Mondrian is slow (next step)

Alexandre Bergel-4
In reply to this post by Tudor Girba
> 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?

It is spent on drawing because there is no bitmap cache.

>> 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 :)?

Ok, I will package it then. Just give me a few days.

Alexandre


>
>> 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
>>>>> [hidden email]
>>>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>>
>>>> --
>>>> www.tudorgirba.com
>>>>
>>>> "What we can governs what we wish."
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Moose-dev mailing list
>>>> [hidden email]
>>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>
>>> ---
>>> Jannik Laval
>>>
>>>
>>> _______________________________________________
>>> 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
>
> --
> www.tudorgirba.com
>
> "There are no old things, there are only old ways of looking at them."
>
>
>
> _______________________________________________
> 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
123