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.
show comments
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.
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.
show comments
Sorrel47
Always appreciate the continued perf gains. Our existing services just get faster for free, which is a nice win.
pseudosavant
Very thorough write up. Clearly a lot of performance improvements across their stack. As if it wasn't detailed/long enough already, I would have loved to see some application-level benchmarks that gave a hint of the cumulative performance gains we should expect.
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
}
d_finch
Saw a noticeable startup time boost on a recent project migration. Always appreciate the continued focus on speed.
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?
show comments
bjoli
I hope there will be some kind of runtime async support for the current or a new asyncmethodbuilder. That is amazing work.
pjmlp
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.
gerdesj
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)
show comments
mlhpdx
Impressive technical work and authorship. My quibble, which seems significant in context, is what happened with AoT?
show comments
equasar
Thanks Stephen for this, it is very rewarding to read something very technical that is not AI slop these days.
[deleted]
dude250711
C#/.NET are very well-represented in LLM data - from enterprise back-end code to games. A language to use for sure.
show comments
kristianp
> 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.
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.
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...
Runtime async is certainly an interesting development. Really excited to see how this plays out.
these blog posts have really turned me into a dotnet evangelist. love the framework & language.
Always appreciate the continued perf gains. Our existing services just get faster for free, which is a nice win.
Very thorough write up. Clearly a lot of performance improvements across their stack. As if it wasn't detailed/long enough already, I would have loved to see some application-level benchmarks that gave a hint of the cumulative performance gains we should expect.
casey muratori would like to have a talk with you about the following :))
Saw a noticeable startup time boost on a recent project migration. Always appreciate the continued focus on speed.
Dumb Q: should a non-systems-language dev know/read assembly?
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?I hope there will be some kind of runtime async support for the current or a new asyncmethodbuilder. That is amazing work.
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.
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)
Impressive technical work and authorship. My quibble, which seems significant in context, is what happened with AoT?
Thanks Stephen for this, it is very rewarding to read something very technical that is not AI slop these days.
C#/.NET are very well-represented in LLM data - from enterprise back-end code to games. A language to use for sure.
> 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.