3 ms·
There is also now a direct comparison with the Java results: https://github.com/buybackoff/1brc#results https://github.com/buybackoff/1brc#results
by neonsunset 3y ago
There is also now a direct comparison with the Java results:
https://github.com/buybackoff/1brc#results https://github.com/buybackoff/1brc#results
- jackfoxy 3y agoI've left the Microsoft world. That said the dotnet environment is pretty frickin' cool. Not least of all for the mostly excellent documentation across a lot of libraries. And MS keeps throwing money at development. It's just not better enough to attract Linux devs brought up entirely in the Linux world. And I suspect most dotnet devs who jump entirely into Linux abandon dotnet because their new shop doesn't use it.
- plusmax1 3y agoWe develop and deploy dotnet on Linux at my shop, it works great. I can recommend it to everyone, the dev experience is wonderful. With Rider as a development environment my team couldn't be happier really. I did a lot of development in C, java and python, but C# feels a lot more solid and developing with it truly is a joy.
- minimeme 3y agoCan confirm, dotnet works great on Linux. We have a lot of dotnet production systems running on Linux and Docker for many years now with zero issues. Also recommend Rider in Linux for development, even our Windows folks prefer it over VS nowadays.
- foverzar 3y agoNo issues with libraries that require old Windows ASP.NET? This was a frequent issue each time I tried using something from .NET ecosystem on Linux.
- kikimora 3y agoNever encountered this in the last 5 years working on .NET + Linux system.
- minimeme 3y agoThis was maybe a problem on the early days of .NET Core, but from .NET 6 or so they have reimplemented (almost) all the stuff from the old .NET Framework and that in turn enabled relatively easy porting of third party libraries, so most of them are ported as of today (atleast more or less maintained ones).
- SeanKilleen 3y agoWe're developing in .NET and publishing Linux containers deployed to Kubernetes. It's been an absolute joy!
- eyegor 3y agoIt's wild to me that they would write performance focused code (unsafe ptrs, memory mapped files, etc) and then still use linq in the main work loop [0]. This implementation could go much much faster. Of course rewriting the parallelism and aggregation from linq is a decent amount of effort, but I'm betting that applying the lazy man's hack [1] would have decent gains. [0] https://github.com/buybackoff/1brc/blob/main/1brc/App.cs#L126 https://github.com/buybackoff/1brc/blob/main/1brc/App.cs#L12... [1] https://github.com/reegeek/StructLinq https://github.com/reegeek/StructLinq
- anonymoushn 3y agoI don't think much time is spent in this code.
- buybackoff 3y agoAuthor there. Nothing really matters other than `ProcessChunk`. Don't you think I kind of know what I'm doing with these numbers!?
- brabel 3y agoYou're assuming they didn't try that. I wrote a blog post about a benchmark once, and posted on Reddit/HN, and everyone was like "clearly he should've tried X and Y" which I had, but didn't mention because I had mentioned many other things already which I thought were more interesting to mention... So, my advice is: try it before you accuse someone of not having done it properly. I can almost guarantee you'll find it's not better. If you find it's better, then at least you don't make a fool of yourself by suggesting inocuous changes. Performance is very surprising sometimes.
- deleted 3y ago[deleted]