Improving WPF Application Cold Start User Experience – 2 techniques
Henry Hahn, Tim Cahill (not the football/soccer player) and other members of the WPF performance team have made great strides over the last year helping the entire WPF team improve performance. They have also helped customers understand why profiling their code is essential to diagnose any performance issues.
Anyway, here are 2 techniques that will improve user experience with WPF’s first version (.NetFx 3).
Build a splash screen into your application
Henry has (or will soon) posted a sample on how to build an unmanaged splash screen into WPF applications. This technique launches a GDI based splash screen in just over 1 second.
I’ll update this section to point to the splash screen when it is available.
Configure Font Cache Service to Start
When you install .NetFx 3.0 on a machine, it installs a FontCache service that is set to turn on Manually.
When the first WPF application starts up, if the FontCache service is not running, it is started. Its purpose iis to help share font glyph information between WPF applications.
My Windows Vista RC1 laptop is now configured so that the "Windows Presentation Foundation Font Cache 18.104.22.168" service has a startup type of "Automatic (Delayed Start)". Cold start of the first WPF application after boot is now faster. We didn’t want to turn this on by default because only WPF application users would see any benefit from it.