.NET 11 Performance: One Louder, and Actually Faster
Performance Improvements in .NET 11

Microsoft's annual deep dive into .NET 11 performance improvements covers hundreds of optimizations across the JIT, runtime, and libraries. The post walks through micro-benchmarks showing real gains: devirtualization and inlining, bounds check elimination, allocation removal, lock elision, SIMD-accelerated copies, and more. It explains how profile-guided optimization and deabstraction let the JIT turn virtual calls into direct, inlinable code. The author frames the release as "one louder" than .NET 10, with compounding gains that are measurable and provable.
That’s how real performance work goes, accumulating gain after gain, each compounding on the last, until the whole thing is measurably, provably louder.
- tiffanyh
This post was so refreshing to read, because it reminds me of a time of solid engineering & writing in a pre-AI era.
I’m afraid posts like this might become fleeting.
- lukehoban
For anyone who enjoys Stephen Toub’s deep technical articles like this one as much as I do - he also published another post today on migrating the Copilot coding harness from Node.js to Rust. Another great read.
https://github.blog/ai-and-ml/generative-ai/migrating-the-gi...
- majora2007
Outside of the outstanding optimizations .net has made (plus async runtime), what I really enjoyed was the reworked entry section. Stephen reiterated all the concepts from the past Performance Improvement articles to really showcase the layers of optimization techniques and how the can transform.
- testerius
I remember .NET fails when there were dramas about not open sourced debugger, planning to remove hot reload (make it only available in Visual Studio because of licensing) or poor support in Visual Studio Code compared to other languages. AFAIK many people were angry that VS Code is not first class editor for C#/.NET. I am not sure how it is these days.
- adzm
Runtime async is certainly an interesting development. Really excited to see how this plays out.
- rsalus
these blog posts have really turned me into a dotnet evangelist. love the framework & language.
- AlexErrant
Dumb Q: should a non-systems-language dev know/read assembly?
; Arm64
--- .NET 10
+++ .NET 11
@@ -13,8 +13,6 @@
ble G_M000_IG04
G_M000_IG03:
- cmp w1, w2
- bhs G_M000_IG05
str wzr, [x0, w1, UXTW #2]
G_M000_IG04:
@@ -25,4 +23,4 @@
bl CORINFO_HELP_RNGCHKFAIL
brk #0
-; Total bytes of code 68
+; Total bytes of code 60
I know C#/F# decently well, but is there any reason to actually pull out the ol textbooks and learn wtf the above is saying?
- momocowcow
casey muratori would like to have a talk with you about the following :))
// Approximately what the JIT generates
if (animal?.GetType() == typeof(Dog))
{
((Dog)animal).Speak(); // devirtualized, inlinable
}
else
{
animal.Speak(); // original virtual call, hopefully rare
}