[Mono-bugs] [Bug 82530][Wis] New - Unrequired updates when loading XAML files

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Wed Aug 22 12:00:48 EDT 2007

Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by sebastien at ximian.com.


--- shadow/82530	2007-08-22 12:00:48.000000000 -0400
+++ shadow/82530.tmp.19333	2007-08-22 12:00:48.000000000 -0400
@@ -0,0 +1,59 @@
+Bug#: 82530
+Product: Moonlight
+Version: 1_0
+OS Details: 
+Status: NEW   
+Priority: Wishlist
+Component: engine
+AssignedTo: mono-bugs at ximian.com                            
+ReportedBy: sebastien at ximian.com               
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+Summary: Unrequired updates when loading XAML files
+Description of Problem:
+A lot of unneeded activity goes on when loading an XAML file.
+E.g. the test/xaml/test-shape-ellipse-stroke.xaml has about 70 ellipses in
+it but I get 216 path resets(*) just loading (not display) the XAML file.
+(*) using cairo_path_t caching not yet in SVN
+This means every ellipse, even with it's path cached, is created 4 times
+(the last one being ok and kept in the cache) just for loading the XAML.
+This happens, in my case, because the cached-path is cleared when some
+properties are set (normal behavior). However the clear happens because
+something else requested the path to be created (between the setting of the
+2 properties).
+This could be fixed by using a "loading" flag inside the DO (and ignore
+updates if the flag is set) then clearing it when the XAML loader has
+completed setting properties on the DO. 
+But this likely also occurs on DO created by source code (not markup) so it
+looks like we're calling code that invalidates (or recalculate) much too
+often (and paying the price in performance).
+Steps to reproduce the problem:
+1. add some counters in shape.cpp (e.g. draw)
+2. mopen --parseonly test/xaml/test-shape-ellipse-stroke.xaml
+Actual Results:
+216 cache resets
+Expected Results:
+no cache resets
+How often does this happen? 
+Additional Information:
+* mopen's --parseonly is in SVN since r84629

More information about the mono-bugs mailing list