[Mono-winforms-list] significant performance loss using a deep control nesting

Sponsel, Carsten (ext) carsten.sponsel.ext at siemens.com
Wed Nov 21 12:49:14 EST 2007


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.

Is there a possibility to keep the SplitContainer Nesting and get a Performance boost by disabling the Parent-Control cascade?  Has mono a problem here, because with .NET there is no performance problem? Has anyone already noticed that?


Mit freundlichen Grüßen

Carsten Sponsel
Diplom-Informatiker (FH)

Am Wolfsmantel 46
D-91058 Erlangen
Tel.: +49 9131 94 08 - 352
Fax: +49 91 31 94 08-1 08
mailto:Carsten.Sponsel at astrum-it.de

Kontaktadresse Siemens:                                                              
Siemens AG
Medical Solutions
Henkestr. 127
91052 Erlangen, Germany
Tel.: +49 9131 84 7649
mailto:carsten.sponsel.ext at siemens.com

Siemens Aktiengesellschaft: Vorsitzender des Aufsichtsrats: Gerhard Cromme;
Vorstand: Peter Löscher, Vorsitzender; Johannes Feldmayer, Heinrich Hiesinger, Joe Kaeser,
Rudi Lamprecht, Eduardo Montes, Jürgen Radomski, Erich R. Reinhardt,
Hermann Requardt, Uriel J. Sharef, Klaus Wucherer;
Sitz der Gesellschaft: Berlin und München
Registergericht: Berlin Charlottenburg, HRB 12300, München, HRB 6684
WEEE-Reg.-Nr. DE 23691322

More information about the Mono-winforms-list mailing list