[Mono-bugs] [Bug 347238] New: significant performance loss using a deep control nesting

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Mon Dec 10 05:06:32 EST 2007


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


           Summary: significant performance loss using a deep control
                    nesting
           Product: Mono: Class Libraries
           Version: 1.2.6
          Platform: x86-64
        OS/Version: SLES 10
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: Windows.Forms
        AssignedTo: mono-bugs at ximian.com
        ReportedBy: carsten.sponsel at astrum-it.de
         QAContact: mono-bugs at ximian.com
          Found By: ---


I've encountered a significant performance loss in my application when changing
the current TabPage of a TabControl. The TabControl has 4 TabPages and each
contains between 30 and 50 Controls (some of the Controls are composed of
Sub-Controls). The TabControl itself is contained within a nesting of three
SplitContainers, the top SplitContainer resides in a
ToolStripContainer.ContentPanel that is the top control of my Application's
main form.

If I change the current TabPage to a TabPage, that has not been opened before,
it took a for the user very uncomfortable time until that TabPage is shown.
Changing the second time into a TabPage that was already opened some time
before is much faster.
I've searched a long time why this takes so long and finally I was able to
exclude that my code causes that. I tried tracing mono which produced a lot of
output I don't really understand, but I noticed, that there are many cascades
to parent controls, getting some font etc.
So I reduced the Control nesting a little bit by removing the three nested
SplitContainers and put my TabControl directly into the
ToolStripContainer.ContentPanel. That resulted in a huge performance gain when
changing the TabPages. But unfortunately I've lost the comfortable Split-UI in
my application.

It seems that the performance problem does not only affect changing TabPages
but has a more general nature like adding many items to TreeViews (that are
deeply nested), ...

I encountered that problem from mono at least from 1.2.4 - mono 1.2.6 preview 3


-- 
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