Hello,
I am seeing performance drops in my xamDataGrid when the number of rows in the grid grows above 100k. Each row in the grid represents a model with 15 fields. The model does not inherit from INotifyPropertyChanged, so the individual records are never updated once they are in the grid. Is such slowness expected given ~100k rows in a grid?
There are also times when a database query causes many new rows to be added to the grid at once. Could a situation like this cause slowness of the application?
Thanks,
Matt
Hi Matt,
What kind of performance drops are we talking about? Load time? Filtering? Grouping? What action is occurring when you see the performance drop?
Hi Rob,
the user interface becomes unresponsive for several seconds at a time. For example, I can hover over a button for several seconds before it highlights (becomes clickable).
Some more information I came across yesterday suggests the slowness may be due to extended database queries (the backend was experiencing heavy loads yesterday), but I am still curious about the stability of the xamDataGrid as its data source grows in size. Are there any stats about an upper bound of rows the grid is able to handle? Or memory footprint perhaps? I realize it may vary widely across machines but possibly there are some software specific limits?
- Matt
The XamDataGrid uses virtualization techniques so it only creates the necessary UI elements to render the records you can actually see. Most of the memory usage you will see will come from your underlying data rather than the XamDataGrid. The only issues I can see occurring when you are bound to an enormous amount of data is in the time it will take to filter / sort / group the data. These operations are performed on the UI thread and they require iteration over the data.
As far as an upper bound, this depends on how often you plan to use the filter / sort / group operations. If all you are doing is binding the grid to a large collection of data there isn't really an upper bound. It's when you start trying to do things with that data where you run into limitations.
I should also mention that the XamDataGrid supports external grouping, sorting and filtering. You will have to perform these operations yourself but this means you can move it to a background thread to avoid locking up the UI. As I mentioned in my previous post, if you have a lot of data and try to sort / filter / group it's likely to slow the application as these operations occur on the UI thread.
http://help.infragistics.com/doc/WPF/2015.1/CLR4.0/?page=xamDataGrid_External_Filtering.html
http://help.infragistics.com/doc/WPF/2015.1/CLR4.0/?page=xamDataGrid_External_Sorting.html
http://help.infragistics.com/doc/WPF/2015.1/CLR4.0/?page=xamDataGrid_External_Grouping.html