[Mono-bugs] [Bug 386715] New: Performance Problem when filling a TreeView
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Mon May 5 09:55:23 EDT 2008
https://bugzilla.novell.com/show_bug.cgi?id=386715
Summary: Performance Problem when filling a TreeView
Product: Mono: Class Libraries
Version: 1.9.0
Platform: x86-64
OS/Version: SLES 10
Status: NEW
Severity: Critical
Priority: P5 - None
Component: Windows.Forms
AssignedTo: mono-bugs at lists.ximian.com
ReportedBy: carsten.sponsel at astrum-it.de
QAContact: mono-bugs at lists.ximian.com
Found By: ---
Created an attachment (id=212329)
--> (https://bugzilla.novell.com/attachment.cgi?id=212329)
Profiler output
The Mono (1.9.3) TreeView shows a dramatic performance compared with the .NET's
TreeView when adding new nodes. The more nodes my program adds, the worse the
performance is. When I'm inspecting the profiler output I'm having the
impression that my program is mainly occupied with sending messages and
updating controls.
That is my program:
// TestTreeViewPerf.cs created with MonoDevelop
using System;
using System.Windows.Forms;
namespace TestTreeViewPerf
{
public class TestTreeViewPerf : Form
{
public TestTreeViewPerf() : base ()
{
TableLayoutPanel lp = new TableLayoutPanel ();
lp.RowCount = 2;
lp.ColumnCount = 1;
lp.RowStyles.Add (new RowStyle (SizeType.Percent, 100));
lp.RowStyles.Add (new RowStyle (SizeType.AutoSize));
Button FillTree = new Button ();
FillTree.Text = "Fill Tree";
FillTree.Click += new EventHandler (FillTree_Click);
lp.Controls.Add (m_Tree);
m_Tree.Dock = DockStyle.Fill;
lp.Controls.Add (FillTree);
Controls.Add (lp);
lp.Dock = DockStyle.Fill;
}
private void FillTree_Click (object sender, EventArgs args)
{
for (int i = 0; i < 2000; i++)
{
TreeNode tn = new TreeNode (i.ToString ());
tn.Name = i.ToString ();
m_Tree.Nodes.Add (tn);
for (int j = 0; j < 5; j++)
{
TreeNode subtn = new TreeNode (j.ToString ());
subtn.Name = j.ToString ();
tn.Nodes.Add (subtn);
}
}
}
TreeView m_Tree = new TreeView ();
public static void Main (string [] args)
{
Application.EnableVisualStyles ();
Application.SetCompatibleTextRenderingDefault (false);
Application.Run (new TestTreeViewPerf ());
}
}
}
I've added the profiler output file as attachment.
--
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