I have an UltraGrid, with about 40 columns and 10000 rows. Most columns are strings, but a couple are DateTimes or objects. The UltraGrid datasource is bound to a DataSet with only one table. Only the visiblerows are being updated with data, with the data being updated on a row by row basis fairly often. Somehow, the grid is ultra, ultra slow, and at higher resolutions it takes a long time to scroll up and down, and left and right too. I am wondering why this is? I notice Infragistics WinForms are still on .net 2.0 - .net 3.5 supposedly sped up DataSets heavily. Do you have any other ideas for why this is so slow? It is a serious problem.
We had a Grid with these scrolling issues in connection with the mouse wheel.
The scroll performance returned to normal, after we removed the ColumnHeaderTextOrientation in the DisplayLayout.Override ?!?!
With ColumnHeaderTextOrientation = Horizontal90Degrees the grid is only redrawn after releasing the mouse wheel and with a delay of 2-3 seconds. Without the Header-Rotation the grid draws with each scroll of the mouse wheel.
This is the exact performance issue I am having with performance on my UltraGrid object. After running a trace the application is redrawing everything instead of just the changed sections of the grid. Takes the screen about 80 seconds to refresh. How did you change the control to only redraw the invalidated sections of the Ultragrid control?
I'm sure it's because it keeps redrawing it, I just can't figure out why (when no data in the dataset is changing). It's especially bad when I use the mouse wheel, if I scroll down a couple, then up, it's way lagged and behind. I'm sure it's redrawing too much, just having trouble figuring out why.
Yeah, profiling is probably your best bet at this point. Or, if you can duplicate the problem in a small sample project, you could Submit an incident to Infragistics Developer Support and ask them to take a look.
I recommend you profile it to try and determine what's taking so long.
Case in point: I was also getting really slow grid performance recently. One of my grids just _crawled_. I ran a profiler (JetBrains dotTrace), and it told me that most of the time was being spent drawing, which told me that the grid was having to work harder than it should to keep painting the screen. I started listening the grid's Invalidated event and looked at the parameters. With each change to a row, the ENTIRE grid's rectangle was being invalidated instead of just a Rect that encompassed the changed row. (Not relevant to you, but interesting: This was due to a strange way that .NET handles databinding when your object has a property that is a list. .NET will fire Reset events on that list subproperty even when there are just changes in other properties of the object. Combine that with a grid that has sub-bands, and the grid will keep thinking that it has to refresh ALL rows because the sub-bands keep being reset).
Since you don't have sub-bands (that you've mentioned), I don't think you're hitting the same thing, but the point is just that with some profiling and debugging, you can probably discover the root cause.
Good luck!