- 3 minutes to read
This topic describes concepts that can help you improve your WPF application's performance.
Common WPF Performance Improvements
DevExpress WPF controls are native WPF controls. You can apply recommendations applicable to all WPF applications to improve their performance.
Refer to the Optimizing WPF Application Performance documentation section to learn more.
When you build a .NET application, it is compiled into Microsoft Intermediate Language (MSIL). The “just in time” compiler (JIT-compiler) compiles an applications' MSIL code into machine code when a user launches the application. This process can cause noticeable delays. External DLLs (for example, the DevExpress assemblies) may be loaded in addition to your own application, that means that any delay does not depend on the size of your code alone.
Refer to the Reducing the Application Launch Time article for details on how to improve your application's startup time.
DevExpress Performance Improvements
We are constantly improving the quality and performance of our controls. We recommend that you use newer DevExpress versions.
We also provide optional GridControl optimizations in addition to performance improvements.
Server-Side Data Processing
The following DevExpress Controls support the 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 enabling server-side data processing if the control slows down due to a large number of data records in a bound data source:
- the control does not process (sort, group, filter, and etc.) loaded items: the database server (or Odata service) processes data items.
- the control loads only those items it displays on screen.
The following controls provide the lightweight templates for their elements to reduce their loading time and improve scrolling performance:
Progress Indicators and Splash Screen
It is recommended to use progress indicators when your application executes time consuming operations. DevExpress ships the following progress indicators:
We recommend that you use the SplashScreen when your application requires much time to run. The SplashScreenManager allows you to display a splash screen immediately after the user starts an application.
Progress indicators and the splash screen cannot improve the application's performance, but they improve its UX.
Controls load theme resources when you run the application. Use the PreloadThemeResourceAsync method to load and cache all the theme resources asynchronously at the application startup. The method reduces application freezes. You can set the runTypeInitializers method parameter to true to invoke static constructors and speed up control initialization.