[Mono-dev] Bad performance of custom grid control under moonlight

Markku Tavasti tavasti at seravo.fi
Fri Feb 3 11:46:01 UTC 2012


We have application, which uses custom controls made by third party. On
windows platform these controls perform ok, but moonlight performance is
bad. Problem is in custom gridview which has suport for 'multiline' rows.

Problems we have:

1) performance. more lines the grid has, slower it gets. With 100-200 lines
it will be totally unusable.

2) memory consumption, grid consumes a lot of memory


Error messages we get on load:
---------------------------------------------------------------------------
trying to load:
/XXXX.Windows.Controls.GridView;component/themes/generic.xaml
VisualTreeWalker: unexpectedly got an unsorted UIElementCollection
---------------------------------------------------------------------------


And when using app, I get hundreds of these exceptions even on very short
run:
---------------------------------------------------------------------------
"Finalizer" tid=0x0xb31c8b70 this=0x0x57e70 thread handle 0x407 state : not
waiting
 owns ()
  at <unknown> <0xffffffff>
  at (wrapper runtime-invoke) object.runtime_invoke_virtual_void__this__
(object,in
tptr,intptr,intptr) <IL 0x0004c, 0xffffffff>
[0xb31c8b70:] EXCEPTION handling: System.MethodAccessException: Error
verifying
XXX.Windows.Controls.GridView.GridViewCellBase:Finalize (): Method
object:Finalize
 () is not accessible at 0x001e

"Finalizer" tid=0x0xb31c8b70 this=0x0x57e70 thread handle 0x407 state : not
waiting
 owns ()
  at <unknown> <0xffffffff>
  at (wrapper runtime-invoke) object.runtime_invoke_virtual_void__this__
(object,in
tptr,intptr,intptr) <IL 0x0004c, 0xffffffff>
[0xb31c8b70:] EXCEPTION handling: System.MethodAccessException: Error
verifying XXX.Windows.Controls.GridView.WeakEvent/WeakListener`1:Finalize
(): Method object:
Finalize () is not accessible at 0x0005
---------------------------------------------------------------------------

I have also been running profiler on that app, and part of the problem
might be too many calls to MeasureOveride.
However, this seems not to be problem on windows platform, or at least show
stopper.

Because we use those custom controls from third party, I cannot give public
access to that app,
but i someone wants to test I can give URL personally.

Ideas welcome from where to start digging up this problem in mono/moonlight
side?

--Tavasti
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/mono-devel-list/attachments/20120203/187537af/attachment.html>


More information about the Mono-devel-list mailing list