https://devblogs.microsoft.com/dotnet/performance-improvemen...
How could a mature standard library / frameworks have so much performance gains to be had?
https://devblogs.microsoft.com/dotnet/performance-improvemen...
How could a mature standard library / frameworks have so much performance gains to be had?
And in 2.1 https://devblogs.microsoft.com/dotnet/performance-improvemen...
3.0 has new JIT capabilities like CPU hardware intrinsics; devirtualization; Span etc which in turn enable new techniques in the standard library.
Though 3.0 is a vast set of improvements compared to the previous two
IMO, .NET Framework should be relegated to the dustbin of history. There is no longer a reason to use it unless you are writing legacy code (which, granted, is a legitimate reason in many cases). For greenfield projects, I hope you're using .NET Standard and .NET Core.
I suspect that the CLI and the JVM are about as fast, about 2 to 10 times slower than C++. But that .nets libraries are more performant.
Disclaimer: I do not generally encourage the usage of PHP :)
It's not a direct comparison, because the features aren't quite the same, but the Electron Teams app uses about 10x more memory than the relatively heavy WPF Skype for Business client that it's supposed to replace.
But I'm far more interested by real world user facing performance metrics such as: FPS, vsync consistency, input latency and comparing cpu and gpu usage (thus allowing to infer battery usage).
If you were knowledgeable, you would know for example that chromium 2D rendering engine (skia) is the current state of the art. Benchmarking fps, vsync stability, input latency, etc would be enlightening. There are order of magnitude more engineers working at optimizing chromium than WPF.
Anyway, did you know that chromium is the GUI framework that allow you to have the smallest Binary size? Instead of bundling it like you would with most GUI frameworks (GTK, QT) you can just use the locally installed chrome instance through Carlo.
But now that .NET runs everywhere, it has to compete with projects that have been shipping performance improvements all along. Happily, since it's now open-source too, it can accept those changes from anyone.
This yields some constraints in whatever is possible changing. Want to add new IL instructions? No can do. Need to change the debugger API? No can do.
Please also see this: https://news.ycombinator.com/item?id=18364032