2 ms·
I would say, that beside logical performance as you called it, 99% of optimizations is profiling the memory allocations and minimizing it by using more performa
by fenring 3y ago
I would say, that beside logical performance as you called it, 99% of optimizations is profiling the memory allocations and minimizing it by using more performant (lower-lever) API's, or different techniques to reduce as many allocations as possible.
I've never really saw any meaningful examples of performance optimizations from the list you provided: memory layout, cache locality, access patterns. If that would be needed, I would say that wrong language was selected for solving the problem.
In my company, we use .NET for most of our applications, with Rust being used in places where we needed raw processing speed. But to this day, I'm not 100% convinced that was good choice - I don't know how much faster is Rust in our case vs .NET written with performance as priority, and overhead of interoperability, separate team, etc. is huge.
- ahoka 3y agoI was working on performance critical .net applications. Reasoning about memory layout, cache locality and access patterns are exactly the same as in any other langauge. I don’t understand how that would be any different in a .net. Memory allocations are actually faster in a GC language, given a proper heap size. I’m assuming performance means mostly throughput here. You probably lose more performance with the IPC/FFI than you gain, so my guess would be it was not a good choice.
- physicsguy 3y agoI've worked on HPC applications doing simulation software, and those things are definitely important for that sort of application. But I really don't think I'd recommend it for general purpose web type stuff - there, there are a ton of performance factors that you can optimise before going down that route and it should probably be a last resort for a smaller company to turn that way.