- 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 the 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:
- GridControl (server mode, instant feedback mode, virtual sources)
- PivotGridControl (server mode))
- LookupEdit, ComboboxEdit, ListBoxEdit (server mode, instant feedback mode)
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.
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.
Refer to the following topic for recommendations: Dock Layout Manager Performance Enhancements.
The topics below describe how to optimize the GridControl‘s performance:
- Scrolling Speed
- Frequent Data Updates
- Manage Multi-Thread Data Updates
- Big Data Source
- Optimized Mode
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.
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
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.
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.