What are all the optimization settings to increase the performance in WinForms GridGroupingControl?
Performance
The GridGroupingControl performance increased when large number of data used by the following methods.
C#
this.girdGroupingControl1.InvalidateAllWhenListChanged = false; this.girdGroupingControl1.AllowedOptimizations = EngineOptimizations.All; this.girdGroupingControl1.CounterLogic = EngineCounters.YAmount; this.gridGroupingControl1.UseDefaultsForFasterDrawing = true; // GDI interop drawing, FirstNRecords Summaries used to increase painting performance this.gridGroupingControl1.TableOptions.ColumnsMaxLengthStrategy = GridColumnsMaxLengthStrategy.FirstNRecords; this.gridGroupingControl1.TableOptions.ColumnsMaxLengthFirstNRecords = 100;
VB
Me.girdGroupingControl1.InvalidateAllWhenListChanged = False Me.girdGroupingControl1.AllowedOptimizations = EngineOptimizations.All Me.girdGroupingControl1.CounterLogic = EngineCounters.YAmount Me.gridGroupingControl1.UseDefaultsForFasterDrawing = True ' GDI interop drawing, FirstNRecords Summaries used to increase painting performance Me.gridGroupingControl1.TableOptions.ColumnsMaxLengthStrategy = GridColumnsMaxLengthStrategy.FirstNRecords Me.gridGroupingControl1.TableOptions.ColumnsMaxLengthFirstNRecords = 100
Here are some suggestions for the memory foot print.
The performance of loading the data can improve by making the child table of the Grid to load on demand. It avoids the performance delay by loading the data of the child only when it is expanded or needed.
The property UseLazyUniformChildListRelation must set to true to make the child table load on demand.
C#
this.gridGroupingControl1.UseLazyUniformChildListRelation = true;
VB
Me.gridGroupingControl1.UseLazyUniformChildListRelation = True
To solve the memory footprint issue, avoid all the values to be cache. To achieve this set the CacheRecordValues as false.
C#
this.gridGroupingControl1.Engine.CacheRecordValues = false;
VB
Me.gridGroupingControl1.Engine.CacheRecordValues = False
To support for groups and filtered records for large data sources, reduce the memory footprint by disabling the counters where the application is not needed.
C#
this.gridGroupingControl1.Engine.CounterLogic = EngineCounters.YAmount;
VB
Me.gridGroupingControl1.Engine.CounterLogic = EngineCounters.YAmount
To reduce the auto size calculation for the column to some rows, where the performance can be increased. It can be done by providing the FirstNRecords to the ColumnsMaxLengthStrategy and specifying the number of records in ColumnMaxLengthFirstNRecords.
C#
this.gridGroupingControl1.TableOptions.ColumnsMaxLengthStrategy = GridColumnsMaxLengthStrategy.FirstNRecords; this.gridGroupingControl1.TableOptions.ColumnsMaxLengthFirstNRecords = 50;//the number of records you want checked.
VB
Me.gridGroupingControl1.TableOptions.ColumnsMaxLengthStrategy = GridColumnsMaxLengthStrategy.FirstNRecords Me.gridGroupingControl1.TableOptions.ColumnsMaxLengthFirstNRecords = 50 'the number of records you want checked.
Reference link: https://help.syncfusion.com/windowsforms/classic/gridgroupingcontrol/performance