Lists Are 3 Times SLOWER in .NET 9!
2024 ж. 23 Сәу.
25 684 Рет қаралды
Until the 30th of April, use code BIRTHDAY40 for 40% off any course, BIRTHDAY20 for 20% off any bundle and BIRTHDAY15 for 15% off your first year of Dometrain Pro: bit.ly/4aUVR8l
Become a Patreon and get special perks: / nickchapsas
Hello, everybody, I'm Nick, and in this video I want to talk about a performance regression in .NET 9 regarding the Add method of Lists which is only happening on MacOS.
Help Microsoft troubleshoot it: github.com/dotnet/runtime/iss...
Workshops: bit.ly/nickworkshops
Don't forget to comment, like and subscribe :)
Social Media:
Follow me on GitHub: github.com/Elfocrash
Follow me on Twitter: / nickchapsas
Connect on LinkedIn: / nick-chapsas
Keep coding merch: keepcoding.shop
#csharp #dotnet
Mac is evil, I knew it
The only conclusion is that there is a backdoor in it!
4:14 Nick, you compared the normal vs preallocated. The ordering of the rows are different. The differences between .NET 8 and 9 were insignificant.
I'm so blind
"I'm terrible at financial decisions, yes", you got me 🤣
This single comment in the video caused me to smash that like button.
It's evolving, just backwards
Brothers in ARMs 🙂
Badunts
Speaking of regressions in .NET 9: they also added EF Core context model automatic compilation during build, and it got 5 times slower (compared to .NET 7) or something like that.
Wait what? Link?
@@nickchapsas Issue number 33483 in EF Core repo.
Video coming soon? @@nickchapsas
Since EF Core dbset is not thread safe, it's useless to me anyway.
I have a AMD Epyc Rome, 256 Gb of memory on Windows 10 Pro for Workstations, and have noticed a 3-4x slowdown on some of my C# exe's. I have one project that downloads and writes purposely fragmented text files (anywhere between 500-800k files) then joins the fragments to one file and results to about 37k files. Project heavily uses arrays, arraylists and file IO and directory class. Only difference I can think about is updates to windows and windows quality updates and .Net updates!!
That would be terrible for those mac servers
One small mistake you made-- in the github issue, you said their results showed perf increase while yours was the same. Theirs was the same too! But your benchmark tool prints the results in "8-9, 8-9" order, while the issues post is in "8-8, 9-9" order, which I think tripped you up
4:25 casually flaunting his 32 hyper cpu cores 😂👌
and a 4090
Thank you for staying on top of everything happening in the .NET world!
Microsoft won't be adding support for MAUI on Linux. As many Microsoft employees watch your videos, I suggest you make a video about this.
They will drop maui, ms doesn't use it, so it is doomed
MAUI on .NET 8 was a HORRIBLE experience. So it'll be a hard sell for Microsoft to get me to try it again.
jsuarezruiz is working on a fork for Linux for some time now.
Xamarin.Forms was bad, MAUI took that and went up to 11, trash level. Now... native iOS and Windows.Forms are GREAT to work with and not all that dissimilar, so... which UI model is thrown in the mix that a cross-compatible layer becomes trash? Guess... Funny enough, same company has Skia, which is one of the most enjoyable "low level layer" things to work with. Sometimes things are just bass ackwards...
Personally, I consider Avalonia the best gui framework that currently exists for dotnet. This project is the only one doing things actually right, by building everything up from low level graphics, so that it's way less heavy, and the entire structure of the code is so much better. MAUI and Uno build everything on top of other stuff, making everything extremely heavy and complex. Avalonia also far more friendly when coming from WPF. The only thing is that it's not yet another framework developed by just Microsoft. But the difference is that I consider that actually a good thing.
4:50 love your honesty haha. Great videos as usual :)
Nick, is there any point using .NET 9? We are small team with many apps to maintain, because of .NET version support lifetimes. It is very hard to use non-LTS versions of .NET regardless of any cool features that may come up!! What's your opinion?
Absolutely not. Stick with LTS releases for production, especially if you're a small team.
No, it's going to be a pointless release, like 7.
Hi Nick, I am also Nick, I want to become C# .Net developer I checked your website, I found it difficult to figure out which course to do first. Can you put order on your courses?
apropos performance, I have wondered why Nick did not make a video about general perf features e.g. DevDrive on Windows 11
is this a macos problem or an apple silicon problem exactly? someone try this with an intel mac on macos
Hello, when will available tutorials about Blazor web in Dometrain??
I believe we're experiencing a similar transition once again. Just as with WebForms, there's now Blazor. Initially, there was the advent of WebMethods, which ushered in the era of AJAX. Presently, everything seems to revolve around APIs. And now, we have Blazor, essentially a reinvention. Why not opt for a simpler approach of creating everything as an API and universally implementing it?
List.Add() is very essential, so if this slower... a lot of code that builds on top on that is much slower. Regarding performance regession tests... in the large company i am working right now, we don't do such tests. Those are too expensive and most of the time the customer doesn't care if the data plots in 2 or 4 seconds. If the plot takes 3 minutes, then we maybe would investigate that... But i totally share your oppinion, you have absolutely do performance and even stability tests when upgrading a version or framework.
lists go brrrr, lmao, what a project name.
Hahaha I use the same logic when buying a new laptop 😂 you work hard man, why not treat yourself with a awesome MacBook.
Waiting for Benchmark training
There wasn't an improvement in .NET 9 on the test. Just the order was different, first both .NET 8 and then 9.
ListsGoBrrrrrrrrr
From my first data processing class on an Apple IIe to today's x86 architecture, I swore I would never buy an apple product. I've honored that promise without compromise and I believe the iphone is the most evil tech on the planet.
This is not a correct benchmark. Since most of these apps will be deployed on a Linux server.
Lists go brrr :D
I like your videos, but you're passing a statement where you really know what Microsoft team has worked. Where did you see in the document for the list improvements
The namespace ... hahah
ListsGoBrrr namespace lmao
eurgh, that new ui looks so bad :/
blud is try to justify himself XDDDD respect
It has evolved ... into an animal that cannot run as fast ... lol
does it really matter? this issue is only about macos local environments...
This time it's on macos next time is on linux x64. The main learning of this issue still matters
What the F. Comment section is full of strange bots.
Insert the "First time?" meme here
@@guiorgy Hahahaha, I know every video is full of bots trying to scam people, but the ones I saw here where just writing some weird philosophical maybe motivation things.
the first one, like PLSSSS
You are becoming too negative these days with code cop and this. Think I’ll unsubscribe