Thanks for your interest in Syncfusion products.
I would like to mention that if your performance problems are related to initialization time of the grouping engine and loading data from a datasource, there are also some standard optimizations that let you speed up the grouping engine.
Please use these settings also and check if they make a difference:
void OptimizeGrid(GridGroupingControl gridGroupingControl)
// Couple settings to perform better:
gridGroupingControl.Engine.CounterLogic = EngineCounters.FilteredRecords;
gridGroupingControl.TableOptions.VerticalPixelScroll = false;
gridGroupingControl.Engine.TableOptions.ColumnsMaxLengthStrategy = GridColumnsMaxLengthStrategy.FirstNRecords;
gridGroupingControl.Engine.TableOptions.ColumnsMaxLengthFirstNRecords = 100;
Based on the specific way you use the grouping grid more optimizations could be suggested, but I would need to more details about the application, the data and which features of the grouping engine you are using.
If you can provide us with a sample that gives an idea about the specific requirements of your application we will also be glad to debug and look at such a project and see how the grid can be optimized in more detail.
Also refer the browser samples for more details.
Please refer this thread also.http://www.syncfusion.com/Support/Forums/message.aspx?MessageID=22448
Please let me know if this helps.
I need your help. I use a grid grouping control because I need to sort, group element, filter etc. But I need a good grid performance(Refresh). I can have 1 000 000 rows and some rows can have children. I use a BindingList for each element in the grid.
this.gridGroupingControl1.Datasource = MyBindingList;
MyBindingList contains a list of object that have many properties.
If I use only one level of bindingList, it's ok.. (6 or 7 seconds for 100 000rows). But If I use a bindinglist property, it's very very slow.
It takes 2 minutes!!! I need to load the list in few seconds...
How can I increase the performance?
I enabled many optimizations:
this.gridGroupingControl1.CounterLogic = EngineCounters.YAmount;
this.gridGroupingControl1.AllowedOptimizations = EngineOptimizations.DisableCounters | EngineOptimizations.RecordsAsDisplayElements;
this.gridGroupingControl1.UseDefaultsForFasterDrawing = true; // GDI interop drawing, FirstNRecords Summaries
this.gridGroupingControl1.InvalidateAllWhenListChanged = false; // only paint modified cells
this.gridGroupingControl1.InsertRemoveBehavior = GridListChangedInsertRemoveBehavior.ScrollWithImmediateUpdate;
this.gridGroupingControl1.UpdateDisplayFrequency = 50; // update every number of ms (speciy 0 if Update should occur manually, 1 if immediately)
this.gridGroupingControl1.TableControl.EnableDoubleBufferSurface(); // reduce flickering