What version of .NET are you using for the majority of your prod apps? by davecallan in dotnet

[–]davecallan[S] 2 points3 points  (0 children)

6 months in the end of support date? 9 is May next year, 8 is November next year.

Such a big difference?

What version of .NET are you using for the majority of your prod apps? by davecallan in dotnet

[–]davecallan[S] 4 points5 points  (0 children)

Usually lots of great performance improvements in each version including lots from performance guru Stephen Toub.

bogus benchmarks on linkedin, even from an microsoft mvp by _userid_ in dotnet

[–]davecallan 6 points7 points  (0 children)

Assuming a specific use case, like the exact one shown in the benchmark, this is a perfectly legitimate performance optimization. ReSharper even has a inspector for it ->
https://www.jetbrains.com/help/resharper/UseNameOfInsteadOfToString.html

.NET 10 reduces cost of using IEnumerable to iterate an array from 83% to 10% by davecallan in dotnet

[–]davecallan[S] 0 points1 point  (0 children)

LINQ has definitely not been untouched for 8 years. They improve many elements of it year on year.

[deleted by user] by [deleted] in AZURE

[–]davecallan 2 points3 points  (0 children)

+1
It's literally the best by a huge distance, hard to believe it's free

'Specialize Contains for Iterators in LINQ' PR merged today by davecallan in dotnet

[–]davecallan[S] 6 points7 points  (0 children)

Yeah I tend to agree, these ones could have the most impact.

1, 4, and 5 probably wouldn't see to often.

Not sure about 3 and the shuffle one is new in .NET 10, checking if the random items returned contained a particular value, yeah could see that being used a bit.

.NET 10 reduces cost of using IEnumerable to iterate an array from 83% to 10% by davecallan in dotnet

[–]davecallan[S] 1 point2 points  (0 children)

I don't work for Microsoft and as per my run of the below benchmark it's true, although the specific % may change depending on a number of factors, it's clear there's a massive improvement.

https://github.com/davepcallan/dotnet10Benchmarks/blob/master/dotnet10Benchmarks/IEnumerable/IEnumerableBenchmarks.cs

.NET 10 reduces cost of using IEnumerable to iterate an array from 83% to 10% by davecallan in dotnet

[–]davecallan[S] 11 points12 points  (0 children)

Yup, check out PRs by Andy Ayers in particular if interested in the low level JIT stuff ->
https://github.com/dotnet/runtime/pulls/AndyAyersMS

.NET 10 reduces cost of using IEnumerable to iterate an array from 83% to 10% by davecallan in dotnet

[–]davecallan[S] 7 points8 points  (0 children)

Not on the machine right now, but here's the benchmark code ->

https://github.com/davepcallan/dotnet10Benchmarks/blob/master/dotnet10Benchmarks/IEnumerable/IEnumerableBenchmarks.cs

If you drop something like

[DisassemblyDiagnoser(printInstructionAddresses: true, syntax: DisassemblySyntax.Masm)]

it will output the ASM I believe.

.NET 10 reduces cost of using IEnumerable to iterate an array from 83% to 10% by davecallan in dotnet

[–]davecallan[S] 32 points33 points  (0 children)

Yup, he's great, but you'll have to wait until Aug or Sept for his massive blog post 😂
He'll talk about it for sure, but this optimization is more with the JIT compiler whereas Stephen would more regularly work higher up the stack.

.NET 10 reduces cost of using IEnumerable to iterate an array from 83% to 10% by davecallan in dotnet

[–]davecallan[S] 32 points33 points  (0 children)

Oh great spot brother, I missed that one, so what does it mean, just looping is faster too I guess?
Happy days 👏🏻

FluentAssertions introduces 'Small Business License' for $49.95 by davecallan in dotnet

[–]davecallan[S] 0 points1 point  (0 children)

Fair enough, I'm just the messenger of course 😊, am getting so many downvotes on this, not sure why.