This is a migrated thread and some comments may be shown as answers.

Hangs when resizing while bottom row is in-view.

3 Answers 56 Views
GridView
This is a migrated thread and some comments may be shown as answers.
Graeme
Top achievements
Rank 1
Graeme asked on 07 Feb 2012, 10:39 PM
I've been tracking down a performance problem, and I have it trimmed down to a sample application.  For code I am using, see below.

Edit: This also repros in the "RadControls for WPF Q3 2011 SP1 Demos" package, using the "Scrolling 1 Billion Cells" example.

A) Scroll to the bottom of the RadGridView, so that the bottom-most row is in-view.
B) Attempt to resize the window.

At this point my entire OS hangs.  I am able to regain control of the OS by CTRL-ALT-DEL then cancelling.  At this point I can break the debugger and determine the code is within GridViewCellsPanel.MeasureCell (bottom of stack is GridViewDataControl.MeasureOverride).

I suspect the RadGridView is de-virtualizing when this happens, as the performance gets worse with more records.  While this is happening, I can watch in Task Manager that the CPU usage is pegging and the memory usage goes from about 50MB to about 600MB.

Any suggestions?  This will be a blocker since we do not experience this behavior in WPF's native DataGrid.

Thanks -
- Graeme

XAML:
<telerik:RadGridView ItemsSource="{Binding}" />

Sample class used:
public class Junk
{
    public int Prop0 { get; set; }
    public int Prop1 { get; set; }
    public int Prop2 { get; set; }
    public int Prop3 { get; set; }
    public int Prop4 { get; set; }
    public int Prop5 { get; set; }
    public int Prop6 { get; set; }
    public int Prop7 { get; set; }
    public int Prop8 { get; set; }
    public int Prop9 { get; set; }
    public int Prop10 { get; set; }
    public int Prop11 { get; set; }
}

Loaded Event Handler:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
    Random random = new Random();
    List<Junk> list = new List<Junk>();
    for (int index = 0; index < 50000; ++index)
    {
        list.Add(new Junk()
        {
            Prop0 = random.Next(),
            Prop1 = random.Next(),
            Prop2 = random.Next(),
            Prop3 = random.Next(),
            Prop4 = random.Next(),
            Prop5 = random.Next(),
            Prop6 = random.Next(),
            Prop7 = random.Next(),
            Prop8 = random.Next(),
            Prop9 = random.Next(),
            Prop10 = random.Next(),
            Prop11 = random.Next(),
        });
    }
    DataContext = list;
}

3 Answers, 1 is accepted

Sort by
0
Vera
Telerik team
answered on 08 Feb 2012, 12:43 PM
Hello Graeme,

 
Actually, this issue has been logged into our Public Issue Tracking System and you can track its progress here.
Excuse us for the inconvenience caused.


Greetings,
Vera
the Telerik team
Sharpen your .NET Ninja skills! Attend Q1 webinar week and get a chance to win a license! Book your seat now >>
0
Graeme
Top achievements
Rank 1
answered on 08 Feb 2012, 10:50 PM
Thanks.  I'm attempting to identify a workaround, since this renders the control unusable.

Question to other users: Do you not encounter this blocking issue?  Typically I would assume that I am implementing incorrectly, if it were not for the fact that all the demos also exhibit this behavior.  (e.g. http://demos.telerik.com/silverlight/#GridView/Performance, installed 
"WPF Demos" application).  Since this is such a blocking issue, I am surprised to find almost no chatter about it.

Any help is appreciated.

Thanks -
- Graeme

0
Accepted
Vlad
Telerik team
answered on 09 Feb 2012, 01:54 PM
Hello,

 We were able to fix this issue and the fix will be part of our upcoming latest build (next Monday) and our upcoming official Q1 2012 release.

Regards,
Vlad
the Telerik team
Sharpen your .NET Ninja skills! Attend Q1 webinar week and get a chance to win a license! Book your seat now >>
Tags
GridView
Asked by
Graeme
Top achievements
Rank 1
Answers by
Vera
Telerik team
Graeme
Top achievements
Rank 1
Vlad
Telerik team
Share this question
or