Friday, July 18, 2025

How much does start-up time matter when choosing a framework?

I got nerd-sniped.

I was asked about measuring and possibly benchmarking different .NET frameworks for making native apps in terms of performance.

Apparently, this is an important factor for some people when choosing a framework.

I think I know better. I know you can write very bad (hence slow) code in any language or with any framework. I also know there are almost infinite things you can do to make code faster.

A basic comparison didn't seem very useful. I knew that if I saw such a thing, I wouldn't care very much, as it all comes down to optimising appropriately in a real app, given the constraints and requirements of/for that particular app.

I tried to find a way to get excited about the prospect, but couldn't see what could be exciting.


However, two questions persisted:

  1. Do other people care?
  2. How much difference is there?

It's hard to know if other people care, but is there a significant difference?
Time for a quick experiment...

Doing the simplest and quickest thing I could, I did a quick test to see how long it takes to launch a trivially simple app and for it to report that it has finished loading.

Here are the initial results:
WinForms is fastest. WPF is really slow. WinUI next fastest, then Avalonia, MAUI, and Uno but not a lot in it

The Windows Forms perf was to be expected and was included as a reference for the others.

Why is there so much difference?

Is this interesting?
Do you care?
Should I go deeper in investigating more realistic scenarios and considering simple optimizations (like AOT)?


Let me know if you want to know more.


1 comment:

  1. This is definitely interesting. I do wonder how much AOT would change the WPF load time. Have you checked UWP startup time too? I've heard devs say that one reason they stay on UWP is startup time and memory footprint, since it was built to run on other devices like phones and IoT.

    ReplyDelete

I get a lot of comment spam :( - moderation may take a while.