Re:Golang vs. C# (.NET 5.0) at Benchmarks Game
by _ph_ on Tuesday August 24, 2021 @04:28PM
(#28294557)
That is one reason I don't consider the language benchmark to be really relevant: a lot of benchmarks are taited by the exact rules of the competition.
[ Parent
| on HN ]
Re:Golang vs. C# (.NET 5.0) at Benchmarks Game
by throwaway894345 on Wednesday August 25, 2021 @08:56AM
(#28301029)
And these rules are particularly bizarre. Rust, C, and C++ are all allowed to use custom allocators while Java and C# have GCs which are optimized for this particular micro benchmark but not for real world applications (although I hear Java’s GCs are making good headway on latency lately, and clearly all of the GCs are suitable for general application development). So it’s really just Go which is forbidden from an idiomatic optimization as far as I can tell.
Re:Golang vs. C# (.NET 5.0) at Benchmarks Game
by Jweb_Guru on Thursday August 26, 2021 @04:17PM
(#28320091)
Go optimizes ridiculously insanely for latency because it's driven by Hacker News articles about GC latency, not because it's better for "real world applications." Its atrocious throughput is entirely a consequence of that decision and is one of very the few useful things that the benchmark games do actually demonstrate. Java's unwillingness to provide an allocator with such an extreme tradoeff has proven a pretty good idea, and now they are able to provide only moderately worse latency than Go for "real world applications" with far better throughput.
Re:Golang vs. C# (.NET 5.0) at Benchmarks Game
by igouy on Wednesday August 25, 2021 @02:36PM
(#28305233)
> … allowed to use custom allocators…
No. They are allowed a library memory pool.
As-it-says: 'Please don't implement your own custom "arena" or "memory pool" or "free list" - they will not be accepted.'
Re:Golang vs. C# (.NET 5.0) at Benchmarks Game
by throwaway894345 on Wednesday August 25, 2021 @03:41PM
(#28305971)
See "contrived rules" conversations elsewhere.