Hi,
I have a WinGrid that data blind to a table that contain more than 40,000 rows. However, not all rows need to be displayed. I added a filter so that it only display about 10 to 20 rows.
However, even thou I added a filter, the amount of memory that the grid uses is still very high ~ 700MB.
My WinGrid bounds to a DataSet which is the main repository in memory. Since WinGrid filtering doesn't seem to affect memory usage, I created a temporary DataSet, and only loaded the data that needed to be displayed. This definitely reduce the amount of memory usage. However, I still prefer to have the WinGrid bounds to the original DataSet, because all the operation is done on that dataset and not the temporary one.
If I have to apply my temporary DataSet solution, I would have to add many code to synchronize the main DataSet and temporary DataSet.
Is there other way to reduce memory usage for WinGrid that bound to a large table. I am guessing the reason why the memory usage is high because of the number of WinGrid Cell elements generated. Is it possible to have the WinGrid generate the cells dynamically, instead of keeping all the cell data in memory?
Another alternative to reduce memory usage due to large data table?
Hello,
I am just checking about the progress of this issue. Let me know If you need any further assistance on this issue?
Thank you for using Infragistics Components.
I tested it. It didn't help. The reason probably because we apply filtering to the grid. Base on the documentation, if there is filtering, the grid still required to load all the data. Using CLR Profiler, I was able to see most of the memory were allocated at the ultraGridCell. If cell is not displaying (filtered), could the cell be removed to improve memory usage. In fact, in our case, I only use it for display purpose, would it work if I data bound the grid to a DataView?
----------------------------
CLR Memory Profile result:
<root> : 1.4 GB (100.00%) Handle <root>->Handle->(System.Windows.Forms.Timer): 830 MB (57.37%) Handle, Pinning <root>->Handle, Pinning->(System.Object []): 595 MB (41.15%) Stack, Interior <root>->Stack, Interior->(System.Object []): 7.9 MB (0.55%) System.Windows.Forms.Timer Handle->System.Windows.Forms.Timer->(System.EventHandler,System.Object): 830 MB (57.37%) (24 objects, 2.1 kB (0.00%)) System.Object [] Handle, Pinning->System.Object []->(log4net.Core.LogImpl,System.Drawing.Color,System.String,...): 582 MB (40.22%) (1 object, 32 kB (0.00%)) System.Object [] Stack, Interior->System.Object []->(MS.Internal.AvTrace,MS.Internal.ClearTraceSourceDelegate,System.Windows.DependencyProperty,...): 7.9 MB (0.55%) (1 object, 64 kB (0.00%)) System.Object [] Handle, Pinning->System.Object []->(log4net.Core.LogImpl,System.String,System.Xml.XmlDocument,...): 7.6 MB (0.53%) (1 object, 128 kB (0.01%)) System.EventHandler System.Windows.Forms.Timer->System.EventHandler->(ME.APTS.Client.Controls.Base.WinForms.MentorDataGrid): 829 MB (57.29%) (22 objects, 1.4 kB (0.00%)) ME.APTS.Client.Model.UIModel System.Object []->ME.APTS.Client.Model.UIModel->(ME.APTS.Client.Controls.General.Modules.AgencyVehicle.Backend.AgencyVehicleLatestGFDataRowManager,ME.APTS.Client.Controls.General.Modules.AgencyVehicle.Backend.EventSpeedingConfigDataRowManager,System.String,...): 577 MB (39.88%) (1 object, 320 bytes (0.00%)) ME.APTS.Client.Controls.Base.WinForms.MentorDataGrid System.EventHandler->ME.APTS.Client.Controls.Base.WinForms.MentorDataGrid->(System.ComponentModel.EventHandlerList,System.Windows.Forms.CreateParams,System.Windows.Forms.Panel,...): 773 MB (53.43%) (7 objects, 4.5 kB (0.00%)) ME.APTS.Client.Model.DataModel ME.APTS.Client.Model.UIModel->ME.APTS.Client.Model.DataModel->(System.Data.DataRelationCollection.DataSetRelationCollection,System.Data.DataViewManager,System.String,...): 577 MB (39.87%) (1 object, 6.5 kB (0.00%)) ME.APTS.Client.Controls.Base.WinForms.MentorDataGrid System.EventHandler->ME.APTS.Client.Controls.Base.WinForms.MentorDataGrid->(System.ComponentModel.EventHandlerList,System.Windows.Forms.Panel,System.Windows.Forms.PropertyStore,...): 13 MB (0.90%) (4 objects, 2.6 kB (0.00%)) ME.APTS.Client.Controls.Base.WinForms.MentorDataGrid System.EventHandler->ME.APTS.Client.Controls.Base.WinForms.MentorDataGrid->(Infragistics.Win.UltraWinTabControl.UltraTabPageControl,System.ComponentModel.EventHandlerList,System.Windows.Forms.CreateParams,...): 13 MB (0.88%) (4 objects, 2.6 kB (0.00%)) ME.APTS.Client.Controls.Base.WinForms.MentorDataGrid System.EventHandler->ME.APTS.Client.Controls.Base.WinForms.MentorDataGrid->(ME.APTS.Client.Controls.General.Modules.Employee.GUI.EmployeeAssignmentList,System.ComponentModel.EventHandlerList,System.Windows.Forms.CreateParams,...): 8.7 MB (0.60%) (1 object, 664 bytes (0.00%)) Infragistics.Win.UltraWinGrid.UltraGrid ME.APTS.Client.Controls.Base.WinForms.MentorDataGrid->Infragistics.Win.UltraWinGrid.UltraGrid->(System.ComponentModel.EventHandlerList,System.Windows.Forms.CreateParams,System.Windows.Forms.SplitterPanel,...): 758 MB (52.39%) (16 objects, 9.8 kB (0.00%)) ME.APTS.Client.Model.DataModel ME.APTS.Client.Controls.Base.WinForms.MentorDataGrid->ME.APTS.Client.Model.DataModel->(ME.APTS.Client.Model.DataModel.AgencyDataTable,System.Data.DataTableCollection,System.String,...): 66 MB (4.59%) (22 objects, 143 kB (0.01%)) Infragistics.Win.UltraWinGrid.UltraGridRow Infragistics.Win.UltraWinGrid.UltraGrid->Infragistics.Win.UltraWinGrid.UltraGridRow->(Infragistics.Shared.SubObjectPropChangeEventHandler,Infragistics.Win.UltraWinGrid.RowsCollection,System.Data.DataRowView,...): 70 MB (4.84%) (4 objects, 1.2 kB (0.00%)) System.Windows.Forms.BindingSource Infragistics.Win.UltraWinGrid.UltraGrid->System.Windows.Forms.BindingSource->(System.ComponentModel.EventHandlerList,System.Data.DataView,System.String,...): 16 MB (1.12%) (6 objects, 1008 bytes (0.00%)) Infragistics.Win.UltraWinGrid.RowScrollRegion Infragistics.Win.UltraWinGrid.UltraGrid->Infragistics.Win.UltraWinGrid.RowScrollRegion->(Infragistics.Shared.SubObjectPropChangeEventHandler,Infragistics.Win.UltraWinGrid.UltraGridRow,Infragistics.Win.UltraWinScrollBar.ScrollBarInfo): 11 MB (0.75%) (3 objects, 720 bytes (0.00%)) Infragistics.Win.UltraWinGrid.UltraGridDisplayLayout Infragistics.Win.UltraWinGrid.UltraGrid->Infragistics.Win.UltraWinGrid.UltraGridDisplayLayout->(Infragistics.Shared.SubObjectPropChangeEventHandler,Infragistics.Win.AppearanceHolder [],Infragistics.Win.UltraWinGrid.UltraGridOverride,...): 658 MB (45.50%) (23 objects, 34 kB (0.00%)) ME.APTS.Client.Model.DataModel.sch_WorkItemDataTable ME.APTS.Client.Model.DataModel->ME.APTS.Client.Model.DataModel.sch_WorkItemDataTable->(ME.APTS.Client.Model.DataModel,System.Data.DataColumnCollection,System.Data.DataRelationCollection.DataTableRelationCollection,...): 489 MB (33.80%) (24 objects, 19 kB (0.00%)) ME.APTS.Client.Model.DataModel.sch_PatternPointDataTable ME.APTS.Client.Model.DataModel->ME.APTS.Client.Model.DataModel.sch_PatternPointDataTable->(ME.APTS.Client.Model.DataModel,System.Data.DataColumnCollection,System.Data.DataRelationCollection.DataTableRelationCollection,...): 49 MB (3.38%) (24 objects, 16 kB (0.00%)) System.Data.DataView System.Windows.Forms.BindingSource->System.Data.DataView->(System.Data.DataExpression,System.Data.DataViewManager,System.Data.Index,...): 16 MB (1.12%) (6 objects, 1.1 kB (0.00%)) ME.APTS.Client.Model.DataModel.sch_WorkDataTable ME.APTS.Client.Model.DataModel->ME.APTS.Client.Model.DataModel.sch_WorkDataTable->(ME.APTS.Client.Model.DataModel,System.Data.DataColumnCollection,System.Data.DataRelationCollection.DataTableRelationCollection,...): 14 MB (0.95%) (24 objects, 15 kB (0.00%)) ME.APTS.Client.Model.DataModel.sch_PeripheralActionDataTable ME.APTS.Client.Model.DataModel->ME.APTS.Client.Model.DataModel.sch_PeripheralActionDataTable->(ME.APTS.Client.Model.DataModel,System.Data.DataColumnCollection,System.Data.DataRelationCollection.DataTableRelationCollection,...): 8.0 MB (0.55%) (24 objects, 14 kB (0.00%)) ME.APTS.Client.Model.DataModel.sch_PointDataTable ME.APTS.Client.Model.DataModel->ME.APTS.Client.Model.DataModel.sch_PointDataTable->(ME.APTS.Client.Model.DataModel,System.Data.DataColumnCollection,System.Data.DataRelationCollection.DataTableRelationCollection,...): 7.9 MB (0.55%) (24 objects, 14 kB (0.00%)) Infragistics.Win.UltraWinGrid.RowsCollection Infragistics.Win.UltraWinGrid.UltraGridDisplayLayout->Infragistics.Win.UltraWinGrid.RowsCollection->(Infragistics.Shared.SubObjectPropChangeEventHandler,Infragistics.Win.UltraWinGrid.ScrollCountManagerSparseArray,System.Windows.Forms.BindingSource,...): 658 MB (45.47%) (6 objects, 2.2 kB (0.00%)) System.Data.DataColumn ME.APTS.Client.Model.DataModel.sch_WorkItemDataTable->System.Data.DataColumn->(System.Data.Common.StringStorage,System.DBNull,System.String): 285 MB (19.74%) (16 objects, 3.4 kB (0.00%)) System.Data.DataColumn ME.APTS.Client.Model.DataModel.sch_WorkItemDataTable->System.Data.DataColumn->(System.Data.Common.StringStorage,System.DBNull,System.String,...): 62 MB (4.30%) (6 objects, 1.3 kB (0.00%)) System.Data.RecordManager ME.APTS.Client.Model.DataModel.sch_WorkItemDataTable->System.Data.RecordManager->(ME.APTS.Client.Model.DataModel.sch_WorkItemDataTable,ME.APTS.Client.Model.DataModel.sch_WorkItemRow []): 43 MB (2.97%) (1 object, 56 bytes (0.00%)) System.Collections.Generic.List<T> ME.APTS.Client.Model.DataModel.sch_WorkItemDataTable->System.Collections.Generic.List<T>->(System.Data.Index []): 31 MB (2.16%) (24 objects, 960 bytes (0.00%)) System.Data.DataColumn ME.APTS.Client.Model.DataModel.sch_WorkItemDataTable->System.Data.DataColumn->(ME.APTS.Client.Model.DataModel.sch_WorkItemDataTable,System.DBNull,System.String): 22 MB (1.55%) (1 object, 216 bytes (0.00%)) System.Data.DataColumn ME.APTS.Client.Model.DataModel.sch_PatternPointDataTable->System.Data.DataColumn->(ME.APTS.Client.Model.DataModel.sch_PatternPointDataTable,System.DBNull,System.String): 15 MB (1.05%) (4 objects, 864 bytes (0.00%)) System.Data.DataColumn ME.APTS.Client.Model.DataModel.sch_WorkItemDataTable->System.Data.DataColumn->(System.Data.Common.DateTimeStorage,System.DBNull,System.String): 12 MB (0.84%) (3 objects, 648 bytes (0.00%)) System.Data.DataColumn ME.APTS.Client.Model.DataModel.sch_PatternPointDataTable->System.Data.DataColumn->(System.Data.Common.StringStorage,System.DBNull,System.String): 10 MB (0.70%) (3 objects, 648 bytes (0.00%)) System.Data.RecordManager ME.APTS.Client.Model.DataModel.sch_PatternPointDataTable->System.Data.RecordManager->(ME.APTS.Client.Model.DataModel.sch_PatternPointDataTable,ME.APTS.Client.Model.DataModel.sch_PatternPointRow []): 8.9 MB (0.61%) (1 object, 56 bytes (0.00%)) System.Data.DataRowCollection ME.APTS.Client.Model.DataModel.sch_WorkItemDataTable->System.Data.DataRowCollection->(ME.APTS.Client.Model.DataModel.sch_WorkItemDataTable): 7.7 MB (0.53%) (24 objects, 960 bytes (0.00%)) ME.APTS.Client.Model.DataModel.sch_WorkItemRow [] System.Data.RecordManager->ME.APTS.Client.Model.DataModel.sch_WorkItemRow []->(ME.APTS.Client.Model.DataModel.sch_WorkItemRow): 43 MB (2.97%) (1 object, 4.0 MB (0.28%)) ME.APTS.Client.Model.DataModel.sch_PatternPointRow [] System.Data.RecordManager->ME.APTS.Client.Model.DataModel.sch_PatternPointRow []->(ME.APTS.Client.Model.DataModel.sch_PatternPointRow): 8.9 MB (0.61%) (1 object, 1.0 MB (0.07%)) System.Collections.Generic.Dictionary<T,U> System.Data.DataView->System.Collections.Generic.Dictionary<T,U>->(System.Data.DataView.DataRowReferenceComparer,System.Int32 []): 16 MB (1.14%) (12 objects, 1.0 kB (0.00%)) Infragistics.Win.UltraWinGrid.RowsCollection.RowsSparseArray Infragistics.Win.UltraWinGrid.RowsCollection->Infragistics.Win.UltraWinGrid.RowsCollection.RowsSparseArray->(Infragistics.Shared.SparseArray.Node): 335 MB (23.15%) (23 objects, 1.1 kB (0.00%)) Infragistics.Win.UltraWinGrid.ScrollCountManagerSparseArray Infragistics.Win.UltraWinGrid.RowsCollection->Infragistics.Win.UltraWinGrid.ScrollCountManagerSparseArray->(Infragistics.Shared.SparseArray.NodeExtended): 323 MB (22.32%) (24 objects, 1.1 kB (0.00%)) System.Data.Index [] System.Collections.Generic.List<T>->System.Data.Index []->(System.Data.Index): 61 MB (4.21%) (4936 objects, 369 kB (0.02%)) System.Data.DataRowCollection.DataRowTree System.Data.DataRowCollection->System.Data.DataRowCollection.DataRowTree->(System.Data.RBTree<T>.TreePage []): 19 MB (1.34%) (4983 objects, 311 kB (0.02%)) System.Collections.Generic.Dictionary<T,U>.Entry [] System.Collections.Generic.Dictionary<T,U>->System.Collections.Generic.Dictionary<T,U>.Entry []->(ME.APTS.Client.Model.DataModel.sch_WorkItemRow): 14 MB (0.98%) (1 object, 5.2 MB (0.36%)) Infragistics.Shared.SparseArray.Node Infragistics.Win.UltraWinGrid.RowsCollection.RowsSparseArray->Infragistics.Shared.SparseArray.Node->(Infragistics.Shared.SparseArray.Node,System.Object []): 335 MB (23.15%) (5 objects, 320 bytes (0.00%)) Infragistics.Shared.SparseArray.NodeExtended Infragistics.Win.UltraWinGrid.ScrollCountManagerSparseArray->Infragistics.Shared.SparseArray.NodeExtended->(Infragistics.Shared.SparseArray.NodeExtended,System.Object []): 323 MB (22.32%) (5 objects, 440 bytes (0.00%)) System.Data.Index System.Data.Index []->System.Data.Index->(ME.APTS.Client.Model.DataModel.sch_WorkItemDataTable,System.Data.IndexField [],System.Data.Listeners<T>): 25 MB (1.73%) (96 objects, 9.0 kB (0.00%)) System.Data.RBTree<T>.TreePage [] System.Data.DataRowCollection.DataRowTree->System.Data.RBTree<T>.TreePage []->(System.Data.RBTree<T>.TreePage): 19 MB (1.31%) (4983 objects, 1.4 MB (0.09%)) System.Data.Index.IndexTree System.Data.Index->System.Data.Index.IndexTree->(System.Data.Index,System.Data.RBTree<T>.TreePage []): 88 MB (6.08%) (20062 objects, 1.4 MB (0.10%)) System.Data.Common.StringStorage System.Data.DataColumn->System.Data.Common.StringStorage->(System.Data.DataColumn,System.DBNull,System.RuntimeType): 414 MB (28.65%) (273 objects, 21 kB (0.00%)) System.Data.RBTree<T>.TreePage [] System.Data.Index.IndexTree->System.Data.RBTree<T>.TreePage []->(System.Data.RBTree<T>.TreePage): 86 MB (5.94%) (20062 objects, 5.5 MB (0.38%)) System.Data.Common.DateTimeStorage System.Data.DataColumn->System.Data.Common.DateTimeStorage->(System.Data.DataColumn,System.DateTime,System.RuntimeType,...): 13 MB (0.90%) (26 objects, 2.0 kB (0.00%)) Infragistics.Win.UltraWinGrid.VisibleRowsCollection Infragistics.Win.UltraWinGrid.RowScrollRegion->Infragistics.Win.UltraWinGrid.VisibleRowsCollection->(System.Collections.ArrayList): 11 MB (0.73%) (23 objects, 2.3 kB (0.00%)) System.Data.Common.Int32Storage System.Data.DataColumn->System.Data.Common.Int32Storage->(System.Data.DataColumn,System.Int32,System.RuntimeType,...): 9.1 MB (0.63%) (92 objects, 7.2 kB (0.00%)) System.String [] System.Data.Common.StringStorage->System.String []->(System.String): 402 MB (27.77%) (252 objects, 94 MB (6.52%)) System.Data.RBTree<T>.TreePage System.Data.RBTree<T>.TreePage []->System.Data.RBTree<T>.TreePage->(System.Data.RBTree<T>.Node []): 98 MB (6.78%) (27872 objects, 1.3 MB (0.09%)) System.Collections.ArrayList Infragistics.Win.UltraWinGrid.VisibleRowsCollection->System.Collections.ArrayList->(System.Object []): 11 MB (0.73%) (23 objects, 920 bytes (0.00%)) System.Object [] System.Collections.ArrayList->System.Object []->(Infragistics.Win.UltraWinGrid.VisibleRow): 11 MB (0.73%) (7 objects, 1.9 kB (0.00%)) Infragistics.Win.UltraWinGrid.VisibleRow System.Object []->Infragistics.Win.UltraWinGrid.VisibleRow->(Infragistics.Shared.SubObjectPropChangeEventHandler,Infragistics.Win.UltraWinGrid.RowScrollRegion): 11 MB (0.73%) (53 objects, 7.5 kB (0.00%)) Infragistics.Win.UltraWinGrid.UltraGridRow Infragistics.Win.UltraWinGrid.VisibleRow->Infragistics.Win.UltraWinGrid.UltraGridRow->(Infragistics.Shared.SubObjectPropChangeEventHandler,Infragistics.Win.UltraWinGrid.RowsCollection,System.Data.DataRowView,...): 11 MB (0.73%) (9 objects, 2.7 kB (0.00%)) Infragistics.Shared.SparseArray.NodeExtended Infragistics.Win.UltraWinGrid.UltraGridRow->Infragistics.Shared.SparseArray.NodeExtended->(Infragistics.Shared.SparseArray.NodeExtended): 193 MB (13.38%) (1797 objects, 154 kB (0.01%)) Infragistics.Shared.SparseArray.NodeExtended Infragistics.Shared.SparseArray.NodeExtended->Infragistics.Shared.SparseArray.NodeExtended->(Infragistics.Shared.SparseArray.NodeExtended): 409 MB (28.27%) (3444 objects, 296 kB (0.02%)) System.Object [] Infragistics.Shared.SparseArray.NodeExtended->System.Object []->(Infragistics.Win.UltraWinGrid.UltraGridRow): 508 MB (35.15%) (5002 objects, 1.7 MB (0.12%)) Infragistics.Win.UltraWinGrid.UltraGridRow System.Object []->Infragistics.Win.UltraWinGrid.UltraGridRow->(Infragistics.Shared.SubObjectPropChangeEventHandler,Infragistics.Win.UltraWinGrid.RowsCollection,System.Data.DataRowView,...): 735 MB (50.83%) (118047 objects, 34 MB (2.37%)) Infragistics.Win.UltraWinGrid.UltraGridRow(1) System.Object []->Infragistics.Win.UltraWinGrid.UltraGridRow->(Infragistics.Shared.SubObjectPropChangeEventHandler,Infragistics.Win.UltraWinGrid.RowsCollection,System.Data.DataRowView,...): 327 MB (22.62%) (89132 objects, 26 MB (1.79%)) Infragistics.Shared.SparseArray.Node Infragistics.Win.UltraWinGrid.UltraGridRow->Infragistics.Shared.SparseArray.Node->(Infragistics.Shared.SparseArray.Node): 230 MB (15.89%) (1311 objects, 82 kB (0.01%)) Infragistics.Shared.SparseArray.Node Infragistics.Shared.SparseArray.Node->Infragistics.Shared.SparseArray.Node->(Infragistics.Shared.SparseArray.Node): 465 MB (32.13%) (3921 objects, 245 kB (0.02%)) System.Object [] Infragistics.Shared.SparseArray.Node->System.Object []->(Infragistics.Win.UltraWinGrid.UltraGridRow): 561 MB (38.76%) (4965 objects, 1.7 MB (0.12%)) System.Object [](1) Infragistics.Shared.SparseArray.Node->System.Object []->(Infragistics.Win.UltraWinGrid.UltraGridRow): 7.9 MB (0.54%) (358 objects, 123 kB (0.01%)) Infragistics.Win.UltraWinGrid.UltraGridRow(2) System.Object []->Infragistics.Win.UltraWinGrid.UltraGridRow->(Infragistics.Shared.SubObjectPropChangeEventHandler,Infragistics.Win.UltraWinGrid.RowsCollection,System.Data.DataRowView,...): 17 MB (1.16%) (4851 objects, 1.4 MB (0.10%)) System.Object [](1) Infragistics.Shared.SparseArray.NodeExtended->System.Object []->(Infragistics.Win.UltraWinGrid.UltraGridRow): 9.3 MB (0.64%) (319 objects, 110 kB (0.01%)) Infragistics.Win.UltraWinGrid.CellsCollection Infragistics.Win.UltraWinGrid.UltraGridRow->Infragistics.Win.UltraWinGrid.CellsCollection->(Infragistics.Shared.SubObjectPropChangeEventHandler,Infragistics.Win.UltraWinGrid.UltraGridRow): 574 MB (39.69%) (212899 objects, 23 MB (1.57%)) System.Collections.ArrayList Infragistics.Win.UltraWinGrid.CellsCollection->System.Collections.ArrayList->(System.Object []): 538 MB (37.21%) (212899 objects, 8.1 MB (0.56%)) System.Object [] System.Collections.ArrayList->System.Object []->(Infragistics.Win.UltraWinGrid.UltraGridCell): 530 MB (36.65%) (212899 objects, 70 MB (4.83%)) Infragistics.Win.UltraWinGrid.UltraGridCell System.Object []->Infragistics.Win.UltraWinGrid.UltraGridCell->(Infragistics.Shared.SubObjectPropChangeEventHandler,Infragistics.Win.UltraWinGrid.CellsCollection): 455 MB (31.46%) (1720048 objects, 407 MB (28.13%)) Infragistics.Win.UltraWinGrid.UnBoundData Infragistics.Win.UltraWinGrid.UltraGridCell->Infragistics.Win.UltraWinGrid.UnBoundData->(System.String): 49 MB (3.35%) (1069977 objects, 33 MB (2.26%)) System.String System.String []->System.String: 308 MB (21.26%) (3989830 objects, 308 MB (21.26%)) Infragistics.Win.Appearance Infragistics.Win.UltraWinGrid.UltraGridRow->Infragistics.Win.Appearance->(Infragistics.Shared.SubObjectPropChangeEventHandler): 88 MB (6.06%) (212899 objects, 88 MB (6.06%)) System.Data.RBTree<T>.Node [] System.Data.RBTree<T>.TreePage->System.Data.RBTree<T>.Node []: 85 MB (5.86%) (27410 objects, 85 MB (5.86%)) ME.APTS.Client.Model.DataModel.sch_WorkItemRow ME.APTS.Client.Model.DataModel.sch_WorkItemRow []->ME.APTS.Client.Model.DataModel.sch_WorkItemRow->(ME.APTS.Client.Model.DataModel.sch_WorkItemDataTable,System.Data.DataColumn): 19 MB (1.35%) (196344 objects, 19 MB (1.35%)) ME.APTS.Client.Model.DataModel.sch_WorkItemRow ME.APTS.Client.Model.DataModel.sch_WorkItemRow []->ME.APTS.Client.Model.DataModel.sch_WorkItemRow->(ME.APTS.Client.Model.DataModel.sch_WorkItemDataTable): 19 MB (1.35%) (196343 objects, 19 MB (1.35%)) System.String Infragistics.Win.UltraWinGrid.UnBoundData->System.String: 16 MB (1.10%) (456647 objects, 16 MB (1.10%)) Infragistics.Shared.SubObjectPropChangeEventHandler Infragistics.Win.UltraWinGrid.CellsCollection->Infragistics.Shared.SubObjectPropChangeEventHandler->(Infragistics.Win.UltraWinGrid.CellsCollection): 13 MB (0.90%) (212899 objects, 13 MB (0.90%)) Infragistics.Shared.SubObjectPropChangeEventHandler Infragistics.Win.UltraWinGrid.UltraGridRow->Infragistics.Shared.SubObjectPropChangeEventHandler->(Infragistics.Win.UltraWinGrid.UltraGridRow): 13 MB (0.90%) (212899 objects, 13 MB (0.90%)) System.DateTime [] System.Data.Common.DateTimeStorage->System.DateTime []: 13 MB (0.89%) (26 objects, 13 MB (0.89%)) System.String [] System.Data.Common.StringStorage->System.String []: 13 MB (0.88%) (21 objects, 13 MB (0.88%)) System.Data.DataRowView System.Collections.Generic.Dictionary<T,U>.Entry []->System.Data.DataRowView->(System.Data.DataView): 9.9 MB (0.68%) (215187 objects, 9.9 MB (0.68%)) System.Int32 [] System.Data.Common.Int32Storage->System.Int32 []: 8.8 MB (0.61%) (92 objects, 8.8 MB (0.61%)) System.Data.RBTree<T>.Node [] System.Data.RBTree<T>.TreePage->System.Data.RBTree<T>.Node []->(ME.APTS.Client.Model.DataModel.sch_WorkItemRow): 7.6 MB (0.53%) (151 objects, 7.6 MB (0.53%))
Not sure if anyone still looking at this thread.
We ended up using the DataView as described previously. Basically we decided not to use the UltraGrid's filter. Instead, we blind the UltraGrid to a DataView, and we change the filter at the DataView level. THe memory usage has dropped and the grid responsiveness has imporved.
I just wanted to know if you were able to solve your issue based on our suggestions or you still need help? Just let me know.
Thank you.
Hello ,
If you create a DataView where your data is pre-filtered and LoadStyle is setting to LoadOnDemand, then UltraGrid wouldn’t need to load all cell in order to filter (because the data will be already filtered) and this could improve memory usage.
Please let me know if you have any further questions.