.NET 11 Performance: One Louder, and Actually Faster

Performance Improvements in .NET 11

.NET 11 Performance: One Louder, and Actually Faster

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.
  1. 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.

  2. 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...

  3. 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.

  4. 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.

  5. adzm

    Runtime async is certainly an interesting development. Really excited to see how this plays out.

  6. rsalus

    these blog posts have really turned me into a dotnet evangelist. love the framework & language.

  7. 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?

  8. 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

    }

More from this day

2026-09-16