|
Bugzilla – Full Text Bug Listing |
| Summary: | MonthCalendar: performance is affected by our Bridge | ||
|---|---|---|---|
| Product: | [Mono] UI Automation | Reporter: | calen chen <cachen> |
| Component: | Winforms - General | Assignee: | E-mail List <mono-a11y-bugs> |
| Status: | NEW --- | QA Contact: | E-mail List <mono-a11y-qa> |
| Severity: | Normal | ||
| Priority: | P5 - None | ||
| Version: | Release 1.0 | ||
| Target Milestone: | --- | ||
| Hardware: | x86 | ||
| OS: | openSUSE 11.1 | ||
| Whiteboard: | |||
| Found By: | --- | Services Priority: | |
| Business Priority: | Blocker: | --- | |
| Marketing QA Status: | --- | IT Deployment: | --- |
|
Description
calen chen
2009-07-09 08:37:08 UTC
Some profiling data (in a 768MB memory vmware, 1.9G Core 2 CPU):
If we set a MonthCalendar with CalendarDimensions = new Size(4,3)
and then click the prev month button, we will wait about 16 seconds to see the result.
about 6 seconds is consumed by RemoveChildren in MonthCalendarDataGridProvider.OnDateChanged,
about 9 seconds is consumed by AddChildren in
MonthCalendarDataGridProvider.OnDateChanged,
and about the 9 seconds, in AddChildren:
private void AddChildren ()
{
MonthCalendarListItemProvider item;
SelectionRange range = calendar.GetDisplayRange (false);
for (DateTime d = range.Start;
d <= range.End; d = d.AddDays (1)) {
int days = (d - range.Start).Days;
int r = (int)System.Math.Floor ((double)days
/ (double)MonthCalendarProvider.DaysInWeek);
int c = days - (r * MonthCalendarProvider.DaysInWeek);
item = new MonthCalendarListItemProvider (
this, calendarProvider, Control, d, r, c); //Line #A
item.Initialize (); //Line #B
AddChildProvider (false, item); //Line #C
gridChildren.Add (d, item);
}
...
}
Line A took 1 seconds, Line B took 3.5 seconds, Line C took 4.5 seconds. other lines of code took nearly no time.
|