.NET Grid Controls: Faster Sorting, Grouping and Summary Computations (Coming soon in v14.2)

01 December 2014

DevExpress ASP.NET Performance: Speed with custom HTTP Handler

Great news! If you use a DevExpress Data Grid control for ASP.NET, WinForms, and/or WPF then you'll experience better performance just by upgrading to v14.2!

Which Grids?

The performance enhancements we've introduced throughout 2014 apply to the following Grid controls:

  • ASP.NET: ASPxGridView
  • WinForms: XtraGrid
  • WPF: DXGrid

What Changed between v13.2 and v14.2?

As you probably know by now, over the last few release cycles, we've made the decision to move our codebase forward and take advantage of the newest features available in the .NET Framework (see Support for .NET Client Profile being discontinued and DXperience 13.1 will be .NET 4 or above).

This decision freed us up to re-factor older code and throughout 2014, we rewrote major portions of our data processing engine in order to deliver improved grid performance for common data processing operations like sorting, grouping and summary calculations. We also tested these changes across countless use-case scenarios and made certain that performance was either improved or the same as previous releases.

The exciting thing is that in some highly popular use-case scenarios, we succeeded in making our .NET Grid controls about 10 times faster!

Of course, performance generally depends on your specific environment and on how you utilize grids in your apps – but I've shared our test results below so you can see a few of the reasons we think you should upgrade from older versions of DevExpress Grid controls to those shipping in v14.2 

The Details

Here are some specifics on how we squeezed more performance out of our grid controls:

  • If a data controller determines that sorting or grouping operations are thread-safe (for instance sorting properties of basic .NET Framework types with default comparers), it uses multiple threads to utilize the full potential of the modern computers.

  • Advanced caching strategies were introduced.

  • All if-checks logic was rewritten to make certain that all if-checks, which give the same result for all rows, are evaluated once (by generating function/delegate that contains only necessary code).

  • All code is now strongly-typed (whenever possible) eliminating the cost of boxing/unboxing and type-checking operations.

  • For some cases, upper-level and total summaries are calculated from lower-level summaries.

Test Results

I mentioned earlier that we tested our grids to cover a broad range of use-case scenarios. Here's one of our test results (comparing v13.2 and v14.2):

The DevExpress WinForms Grid control was bound to 4,000,000 (4 million) strongly-typed objects. Tests were performed on a machine with an Intel® Core™ i5-2500 Processor. The table below lists tests operations and execution time (in seconds):

XtraGrid Performance Improvements in v14.2

Again, please remember that test results will vary on different machines/configurations - we invite you to compare for yourself and leave your comments/feedback below.

What do think about these performance gains? Leave a comment below. Thanks!


Your Next Great .NET App Starts Here

Year after year, .NET developers such as yourself consistently vote DevExpress products #1.

Experience the DevExpress difference for yourself and download a free 30-day trial of all our products today: DevExpress.com/trial (free support is included during your evaluation).

15 comment(s)
Dave Hesketh

That is impressive. Can't wait to implement 14.2...

1 December, 2014
Jim Foye

Time well spent!

1 December, 2014
Scott G Blood

This is very impressive, well done guys.

Again I am going to bang on about the pivotgrid, but that could do with some serious performance enhancements too, such as massively reducing the amount of memory it uses :) maybe introduce some form of compression so that more data con be held by the pivot grid, before you need to use an OLAP service, which lets be honest, are cumbersome at the best of times and not suitable for smaller companies :)

But don't let this detract from the excellent work you have done on the grid :)

1 December, 2014
Pieter Datema

Is this the same performance improvement we can expect for the grid's in XAF?

2 December, 2014
Mehul Harry (DevExpress)

Scott, thanks for the feedback and we will consider it. For now, check out the ServerMode feature for pivotgrid:

community.devexpress.com/.../net-pivotgrid-server-mode-amp-asp-net-pivotgrid-virtual-scrolling-coming-soon-in-v14-2.aspx

2 December, 2014
Luca Lusetti

Really impressive!!

Now the only question is: how long until we can upgrade ? :)

2 December, 2014
Brian Maxim

The stats are impressive, well done.

The first thing that came to my mind here; now that the performance has been improved – can you reassess the ability for the collapsed and expanded states of master/detail & grouping to be saved and restored. It’s been a popular request for many years and the workarounds in the KB which take you away from the native functions are very flaky and crash in some scenarios.

www.devexpress.com/.../Q262268

www.devexpress.com/.../Q258550

2 December, 2014
QUALCO SA

Does this  apply to SL Grid since they share code with WPF?

2 December, 2014
Crono

Always nice to see performance improvements! :)

Question: how does the decision of supporting the full .NET Framework affects what's shared between WPF and Silverlight? AFAIK, Silverlight is a stripped down runtime and can't support some of the classes present in the full version...

2 December, 2014
Dennis (DevExpress Support)

@Pieter: Sure, because the same GridControl and ASPxGridView components are used in XAF. See also: community.devexpress.com/.../xaf-enhancements-to-existing-features-amp-performance-tuning-coming-soon-in-v14-2.aspx

3 December, 2014
Crono

Can anyone answer my question about Silverlight please?

3 December, 2014
Ray Navasarkian (DevExpress)

@Crono - The decision affects Silverlight negatively...in actuality, Microsoft's decision about Silverlight is what affects things. We'll have more to say about Silverlight in the coming weeks.

3 December, 2014
Crono

Thanks Ray, I'll stay tuned.

4 December, 2014
Booshan Bharath

This is great!

I like to see a Test Results table for ASPxGridView as well. Could you please post it over here or if it is available somewhere else please point me to it.

Also, I am curious about the initial load. Could you add 'Initial Load' to the Test Action list.

10 February, 2015
Mehul Harry (DevExpress)

Booshan,

Thanks. I recommend that you experience the DevExpress ASP.NET GridView demos online to see their performance:

demos.devexpress.com/.../Performance

In general, we don't publish those kind of metrics because they can vary between browsers, machines, etc. However, you'll see that we have the best ASP.NET GridView for performance, features, design, and more.

Thanks and please email me at mharry@devexpress.com with any concerns or questions.

10 February, 2015

Please login or register to post comments.