Skip to main content

Performance Enhancements

  • 3 minutes to read

This topic lists techniques that can enhance your WPF application’s performance.

Common WPF Performance Enhancements

You can improve your application’s startup performance if you pre-compile Microsoft Intermediate Language (MSIL) code. This recommendation applies to all WPF applications and significantly reduces launch time for apps that use advanced UI controls. Refer to the following article for details: Reduce Application Launch Time.

Refer to the following topic on MSDN for more information: Optimizing WPF Application Performance.

Server-Side Data Processing

The following DevExpress Controls support server-side data processing:

We recommend that you enable server-side data processing if the control slows down when bound to a large data source. The following list outlines the main aspects of this mode:

  • The control loads only items it displays on screen.
  • The control does not sort, group, filter, or otherwise process loaded items. For every data operation, it sends a request to the database server (or OData service). The server responds with data items to be displayed on screen.

Preload Themes

A WPF application loads a control’s theme resources when the control is about to be displayed. This is most noticeable in multi-window applications. The application takes time to load resources before it displays each new window. To avoid possible slowdowns in applications with DevExpress controls, you can preload theme resources.

Refer to the following topic for details: Preload Theme Resources.

Control-Specific Performance Enhancements

We regularly optimize memory consumption and performance of our controls. Always update to the latest available DevExpress versions to incorporate the latest enhancements into your apps.

Dock Windows

Refer to the following topic for recommendations: Dock Layout Manager Performance Enhancements.

GridControl

The topics below describe how to optimize the GridControl‘s performance:

PivotGridControl

  • Use lightweight templates to reduce load time and optimize scroll performance: UseLightweightTemplates.

  • Consider Optimized mode for performance benefits and an extended set of aggregations and window functions.

  • Asynchronous Mode allows the application to stay responsive while data operations are in progress. The control uses a background thread to load, sort, group, filter, and otherwise process data.

RibbonControl

You can load RibbonPage content when a user opens the page. This will speed up your RibbonControl cold and hot startup times.

This technique works best when your RibbonControl contains multiple RibbonPages with lots of items, galleries, or other heavy-weight content.

Refer to the following topic for more information: Ribbon Performance Enhancements

SchedulerControl

Use the On Demand Data Loading functionality to batch load items on demand. When you use this feature, the Scheduler loads only the data for the visible interval. This improves the initial load time and memory consumption when the Scheduler is bound to a large data source.

TabControl

Refer to the following topic for recommendations: Tab Control Performance Enhancements.

Progress Indicators and Splash Screen

Use the following progress indicators to improve user experience during lengthy operations:

The SplashScreenManager allows you to display a splash screen immediately after the user starts an application.

See also: