What are all the optimization settings to increase the performance in WinForms GridGroupingControl?
Performance
The WinForms GridGroupingControl performance increased when a large amount of data was 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 = 100Here are some
suggestions for the memory footprint.
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 values being cached. To achieve this set the CacheRecordValues as false.
C#
this.gridGroupingControl1.Engine.CacheRecordValues = false; VB
Me.gridGroupingControl1.Engine.CacheRecordValues = FalseTo support 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.YAmountTo 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: Getting Started