we want to put a 15k * 20k table in grid. We just virtualize the Row data(we read whole record each time). But it is still very slow. So we suspect the Grid create all the cell for each record even the cell is not displayed on the screen.
Could you give us some advices on how to improve the performance?
Is the performance hit up front or constant? Virturalization can only help with performance once the dataset is loaded into the grid. The action of getting that much data actually into the application no matter how you do it is costly and will have an impact on load time.
I would suggest looking at the profiling tools in Visual Studio as well as use a tool called Snoop to look at the visual tree where you will be able to confirm that we are in fact not creating a cell for every record not on the screen.
Matt,
I attached the VS profiler screen shot, looks like it has something to do with measuring and sizing.
I've tried Snoop and confirmed that the visual tree only contains visible records/cells.
Pleases advise, thanks.
I think that also my problem is related to the MeasureOverride because if I set a fixed heigth for the rows I get a huge performance gain
Hi sgrignola,
A benchmark for the most simple kind (least styled) will be very helpful for us. Performance is on the top of our wish list thus we'd like to hit the limit of XamDataGrid. Many thanks.
It's quite hard to give you a benchmark, I use custom styles for editors and cellvaluepresenters so it depends on how the users choose to setup their grid (the range goes from a basic presenter with only a contentpresenter to a "full" presenter with foreground/background/font/... different for every cell)
Could you please let us know how many fields could you load in a certain amount of time? Just want to have a reference so that we know where we are now. Thanks!
Nothing, I have the same problems and the only way to improve a bit the situation is to set a fixed height...
Thanks sgrignola, that does help, although just a little bit, about 10%, which is still far from what we need. Did you set any other property for row height?