[Mono-bugs] [Bug 362022] Animation is slow in Bubble mark with 32+ balls

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Mon Jun 9 09:45:19 EDT 2008


https://bugzilla.novell.com/show_bug.cgi?id=362022

User spouliot at novell.com added comment
https://bugzilla.novell.com/show_bug.cgi?id=362022#c5


Sebastien Pouliot <spouliot at novell.com> changed:

           What    |Removed                                         |Added
----------------------------------------------------------------------------
         AssignedTo|spouliot at novell.com                             |mono-bugs at lists.ximian.com
             Status|ASSIGNED                                        |NEW




--- Comment #5 from Sebastien Pouliot <spouliot at novell.com>  2008-06-09 07:45:18 MDT ---
Just to resume the story so far:


(1) the degradation of performance over last year (about 50% down) is mostly
due to more (and more) complex implementations of ComputeShapeBounds. The
"added" complexity was required in order to fix compatibility issues with
Silverlight. Optimizations are possible (at many level) but won't get us back
to more than (or even) the original performance.


(2) the real problem about the performance is elsewhere. We're currently
computing bounds for each balls (16, 32...), composed of a few shapes (3 iirc),
any time they move (many times per seconds). 

However since balls are moved by setting Canvas.Top and Canvas.Left there's no
reason to invalidate the bounds of the balls, i.e. ball's bounds should be
calculated a single time since only the origin point is changed.

So while the time spent looks to be bound by cairo calls, which is true, the
solution is to ensure those, unneeded, calls are not made.

This problem is likely affecting performance of other applications too, i.e.
anytime you move a shape, the more complex the biggest the performance hit will
be.


-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the mono-bugs mailing list