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?
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
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.
10.3 does not improve it.
I have another simlar problem about problem.
I found when I change datasource and if the original datasource is not null, grid will travel all item in the datasource. It is a very big problem. Is this improve in 10.3?
The code is in OnSourceCollectionReset in RecordManager.cs
if ( DataSourceResetBehavior.ReuseRecordsViaEnumerator == resetBehavior && sourceList != null && this._unsortedRecords.Count == newCount ) { inSameOrder = true;
i = 0;
foreach (object source in sourceList) { // JJD 1/13/08 // Bypass XmlComments if (source is System.Xml.XmlComment) continue;
DataRecord record = (DataRecord)this._unsortedRecords.SparseArray.GetItem(i, false); if (null != record) { if (!record.IsDataItemEqual(source)) { inSameOrder = false; break; } }
i++; } }
I recommend using the latest version 10.3.
Sam