logoalt Hacker News

kristianpyesterday at 10:53 PM2 repliesview on HN

> benchmarks (like this one: https://github.com/Noemata/XamlBenchmark), WinUI 3 is currently measurably slower than both WPF and UWP. WPF is 20+ years old and even it is not native!!!.

Older stuff is generally faster because it had to be built in a more resource poor time. Maybe the WinUI devs should be forced to work on systems with the Minimum System Requirements. Heck, maybe all Microsoft development should be done like that, so that some focus on performance is there from the start, instead of as an afterthought.


Replies

vitorgrstoday at 12:27 AM

If I recall right, Windows 8 and Windows Phone 7/8 during the 2010's were all developed on low end devices.

Both had huge issues UX wise, specially desktop, but performance and stability was never a issue.

Developers should always test their system on the minimum system requirement that they allow the system to be installed...

I remember I complained about WinUI performance years ago, and they told me at the time that "performance" was not the focus...

pjmlptoday at 6:19 AM

It is quite easy to know why.

WinRT is the Windows team final response to Longhorn, but lets do it with COM and C++, which started in Vista.

This is why all major new APIs since Vista are COM based.

So you get an UI framework with reference counting all over the place, and application identity, which is a kind of sandboxing, for the capabilities like in mobile OSes or macOS.

On the UWP subsystem, you get .NET Native and C++/CX, whose runtimes are WinRT aware and can elide those RC calls.

Whereas using WinRT on Win32, means regular .NET and C++, via interop frameworks CsWinRT and C++/WinRT, plain libraries.

So there is no elision, it is AddRef/Release all over the place.

show 2 replies