Hey there, having a performance issue when grouping is enabled. I do not believe it is the grouping logic, but perhaps a drawing issue. I have about 1800 items of 10 columns that are sorted and grouped (about 12 groups). When grouping is off, it runs very fast. With grouping on, it is painfully slow reacting to commands and changes in the bindinglist. However... if I keep most groups collapsed it runs fast again, which is what leads me to believe it may be redrawing (formatting, etc.) rows that are not visible to the user.
For now I will default the groups to collapsed, but would love some feedback on handling this performance issue when all groups are opened. I can only imagine a user with 5000+ items.
Thanks!
For now I will default the groups to collapsed, but would love some feedback on handling this performance issue when all groups are opened. I can only imagine a user with 5000+ items.
Thanks!
9 Answers, 1 is accepted
0
Richard Slade
Top achievements
Rank 2
answered on 07 Jan 2011, 04:35 PM
Hi Brandon,
I've prepared a small sample. I notice a slight performance decrease but could you specify in which areas exactly you are having the issue? Feel free to alter the sample to closer reflevt your scenario and re-post, and if I can help, I will.
All the best
Richard
I've prepared a small sample. I notice a slight performance decrease but could you specify in which areas exactly you are having the issue? Feel free to alter the sample to closer reflevt your scenario and re-post, and if I can help, I will.
Imports Telerik.WinControls.Data Imports System.ComponentModel Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.RadGridView1.EnableGrouping = True Me.RadGridView1.ShowGroupPanel = True Me.RadGridView1.AutoExpandGroups = True Me.Populate() Dim descriptor As New GroupDescriptor() descriptor.GroupNames.Add("Col1", ListSortDirection.Ascending) Me.RadGridView1.GroupDescriptors.Add(descriptor) End Sub Private Sub Populate() Dim list As New List(Of MyObject) For i As Integer = 0 To 1800 list.Add(New MyObject("Col1" & i.ToString(), "Col2" & i.ToString(), "Col3" & i.ToString(), "Col4" & i.ToString(), "Col5" & i.ToString(), "Col6" & i.ToString(), "Col7" & i.ToString(), "Col8" & i.ToString(), "Col9" & i.ToString(), "Col10" & i.ToString())) Next i Me.RadGridView1.DataSource = list End SubEnd Class Public Class MyObject Public Sub New(ByVal col1 As String, ByVal col2 As String, ByVal col3 As String, ByVal col4 As String, ByVal col5 As String, ByVal col6 As String, ByVal col7 As String, ByVal col8 As String, ByVal col9 As String, ByVal col10 As String) Me.Col1 = col1 Me.Col2 = col2 Me.Col3 = col3 Me.Col4 = col4 Me.Col5 = col5 Me.Col6 = col6 Me.Col7 = col7 Me.Col8 = col8 Me.Col9 = col9 Me.Col10 = col10 End Sub Public Property Col1 As String Public Property Col2 As String Public Property Col3 As String Public Property Col4 As String Public Property Col5 As String Public Property Col6 As String Public Property Col7 As String Public Property Col8 As String Public Property Col9 As String Public Property Col10 As StringEnd ClassAll the best
Richard
0
Richard Slade
Top achievements
Rank 2
answered on 07 Jan 2011, 04:43 PM
Hi again,
Actually, I have noticed that the more groups I add, the slower it becomes. I will look into this, but I am not sure if there will be a way to speed this up.
Richard
Actually, I have noticed that the more groups I add, the slower it becomes. I will look into this, but I am not sure if there will be a way to speed this up.
Richard
0
Brandon
Top achievements
Rank 1
answered on 07 Jan 2011, 05:21 PM
Hey Richard, thanks for the replies. To better clarify the situation I'll add a few things:
First, only 5 columns are actually displayed. The grouping column (among others used for filtering) are not visible.
The test I'm running right now only has 10 groups, but still over 1800 items split among them. In essence, the app I'm building is an Outlook style, with the groups being split by date type (Today, Yesterday, Last Week, etc.) and folders in a treeview on the left.
Just about anything I do is slow with the groups expanded. Changing folder (filtering), removing item(s), even changing a single email to read/unread takes about 2 seconds. Without groups enabled it's about half a second. So we're adding a 3x overhead in that case?
First, only 5 columns are actually displayed. The grouping column (among others used for filtering) are not visible.
The test I'm running right now only has 10 groups, but still over 1800 items split among them. In essence, the app I'm building is an Outlook style, with the groups being split by date type (Today, Yesterday, Last Week, etc.) and folders in a treeview on the left.
Just about anything I do is slow with the groups expanded. Changing folder (filtering), removing item(s), even changing a single email to read/unread takes about 2 seconds. Without groups enabled it's about half a second. So we're adding a 3x overhead in that case?
0
Richard Slade
Top achievements
Rank 2
answered on 07 Jan 2011, 05:28 PM
Hi Brandon,
Yes, In my view it's the grouping that is slow. With 3 groups, 1800 rows, 10 columns, I can scroll quickly, but and move between editable cells quickly, but as soon as I edit a cell and change the value, the next operation is very slow. I'll have a look into this further for you, and try and alter my sample to be closer to yours, but I think this will be something that will have to be addressed internally to the grid. I can understand why it may be slower though. Each time a value is edited, the grid (I presume) is having to check the values to see which group they should belong to.
I'll let you know if I come up with anything
Richard
Yes, In my view it's the grouping that is slow. With 3 groups, 1800 rows, 10 columns, I can scroll quickly, but and move between editable cells quickly, but as soon as I edit a cell and change the value, the next operation is very slow. I'll have a look into this further for you, and try and alter my sample to be closer to yours, but I think this will be something that will have to be addressed internally to the grid. I can understand why it may be slower though. Each time a value is edited, the grid (I presume) is having to check the values to see which group they should belong to.
I'll let you know if I come up with anything
Richard
0
Richard Slade
Top achievements
Rank 2
answered on 07 Jan 2011, 06:23 PM
Hi again,
To make sure it was nothing that you or I were doing I've tested this in the demo applications that are installed with the controls.
If you go to The Demos >> Grid View >> Performance >> Load 50,000 rows. And then drag the group to group by the first two columns, then editing cells is slow.
I'll report this in a Telerik Support ticket and post any update here.
regards,
Richard
To make sure it was nothing that you or I were doing I've tested this in the demo applications that are installed with the controls.
If you go to The Demos >> Grid View >> Performance >> Load 50,000 rows. And then drag the group to group by the first two columns, then editing cells is slow.
I'll report this in a Telerik Support ticket and post any update here.
regards,
Richard
0
Brandon
Top achievements
Rank 1
answered on 07 Jan 2011, 06:25 PM
Thanks Richard! I've posted a ticket as well moments before your post. Perhaps it will help expedite the resolution of this issue.
0
Richard Slade
Top achievements
Rank 2
answered on 07 Jan 2011, 06:26 PM
In that case, my apologies to Telerik for double posting
for reference the ticket id is: 382181
Regards,
Richard
for reference the ticket id is: 382181
Regards,
Richard
0
Richard Slade
Top achievements
Rank 2
answered on 10 Jan 2011, 01:07 PM
Hello,
For reference to anyone reading this, this is to be addressed in the Q1 2011 release. The PITS link to the issue for voting and tracking can be found here
Regards,
Richard
For reference to anyone reading this, this is to be addressed in the Q1 2011 release. The PITS link to the issue for voting and tracking can be found here
Regards,
Richard
0
Brandon
Top achievements
Rank 1
answered on 10 Jan 2011, 06:06 PM
Thanks again for the help, Ricahrd. The PUTS title states the issue is with 2 or more columns, but I get the performance drop with only 1 and 1800 rows. So hopefully the issues are related.