Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Unsurprising if you've kept up with .net The new primitive types (spans) allow direct low level manipulation of memory slices. A NIC driver, at it's core, really only copies data to and from shared buffers, so it gets a tremendous benefit from this new type.

C# recently getting new low level memory types definitely gave it the edge there, it does not reflect real world scenarios very accurately.



> C# recently getting new low level memory types definitely gave it the edge there, it does not reflect real world scenarios very accurately.

In my experience, C# is by a large margin the most performant "managed" language vs. Java, Python.


If you go down to bytecode engineering you can create some seriously fast JVM code. But I agree that making .net go fast seems easier than getting the JVM to go fast (if anything because many of the standard libraries are anything but fast, and you have to go hunting for high performance ones or roll your own).


Was going to say much the same thing.

I ported a C hash function to C# recently, and using the low-level feature that C# offers, performance was very close to the C version.

C# is really nice to work with for this kind of thing.

And - .NET Core 3.0 introduced support for hardware intrinsics, so I could probably bridge the gap if I spent some time on vectorisingthe C# code.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: