Performance Improvements in .NET 11

(devblogs.microsoft.com)

114 points | by soheilpro 1 day ago

9 comments

  • AlexErrant 20 minutes ago
    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?
    • louthy 5 minutes ago
      You don’t need to, but if you ever want to really optimise some code, understanding what it turns into on the target CPU really helps. Especially if you know the implications for any particular instruction (cost of memory access, branch prediction misses, etc)

      Most devs won’t ever need to know this stuff, but as someone who grew up with computers that could barely do anything without grinding to a halt (8bit computer, 2mhz processor, 32kb of RAM, 20kb of which is for the screen), I still find this stuff useful.

      But I am a bit of a performance tuning nerd, so..

    • flowerlad 14 minutes ago
      No. If you're a low-level C language programmer then it is useful.
  • mlhpdx 9 minutes ago
    Impressive technical work and authorship. My quibble, which seems significant in context, is what happened with AoT?
    • CurtHagenlocher 7 minutes ago
      AoT is still a thing. Presumably a lot of the JIT improvements would also improve the generation of AoT-compiled code.
  • adzm 1 day ago
    Runtime async is certainly an interesting development. Really excited to see how this plays out.
  • gerdesj 1 hour ago
    Spinal Tap's "put it up to 11". My laptop (Kubuntu) has volume controls that allow me to override 100% and take it to 150%.

    I can wind it up to 15! \||/ (is there an official ASCII art four finger devil's horns)

  • dude250711 3 minutes ago
    C#/.NET are very well-represented in LLM data - from enterprise back-end code to games. A language to use for sure.
  • pjmlp 1 day ago
    Ah the traditional browser stress test from the .NET team. :)

    Joke aside, yet another interesting read of all little improvements that go across all the runtime, and very much appreciated that they put out the effort to go through this detail level.

  • equasar 1 day ago
    Thanks Stephen for this, it is very rewarding to read something very technical that is not AI slop these days.
  • kristianp 1 hour ago
    > The sections that follow are full of real improvements. A bounds check removed, an allocation that no longer happens,

    Annoyingly the.net blog seems to have started to use LLMs to write their copy. Using "real" twice in one paragraph - do LLMs do that? Lots of commas is a tell for me.

    > This is a long one. It’s meant to be. Grab your hot beverage of choice, settle in, and let’s turn it up.

    Ugh.

    • pestkranker 52 minutes ago
      These comments about potential LLM usage are so boring. Stephen is doing this kind of blog post since 6+ years. They all look the same. Read it! It’s very good. Performance deep dives with this kind of quality are rare.
    • gerdesj 47 minutes ago
      Not too sure here. I use quite a few commas, too.

      I suspect it was done old school: Written by Stephen and passed to a LLM to fill in all those links and other garnish and then passed back for final polish by Stephen. That's how I do my write ups (but generally without the LLM bit for shorter efforts).

      This is a long write up, and I'm sure it will have been assisted, but in the right way, and not a sloppy way.

      I've dropped several commas before conjunctions, soz!

      • AlexErrant 27 minutes ago
        FWIW the .NET 10 release also had 2 occurrences of "real" in literally the first paragraph.

        I, too, tire of the constant YOU WROTE THIS WITH LLMs outrage. An incredible engineer dumped an ENORMOUS amount of technical knowledge at your feet, and you're commenting on the smell? Is that all you have to contribute?

        I saw this too on the Ryan Carniato/SolidJS 2.0 announcement post. A world-class engineer makes a great blog post, and all the comments can focus on are the LLM-smells. Oh well. Any reason not to learn, I guess.

    • tester756 26 minutes ago
      For some people LLM-spotting feels like a sport they need to compete in
    • wolttam 28 minutes ago
      This is the loudest release of .NET to date(!)
      • y1n0 18 minutes ago
        It’s a spinal tap joke.