This one stresses the GC quite a bit (so it doesn’t make much sense for non-managed languages that can “cheat”), and there is only Haskell as a managed language that could get ahead of Java (but it is not really apples to oranges due to the different execution model), and in other’s case it is not even close.
Go is particularly bad in this benchmark, though it sort of makes sense as it optimizes for low latency, which is fundamentally at odds with throughput.
Also the cost of write barriers. Looking at the benchmark code, it may actually benefit the languages with non-moving, simpler GC implementations because they would have cheaper write barriers or complete lack of thereof. With that said, it's a good demonstration of the quality of OpenJDK HotSpot JIT and GC. This is an area where .NET has still some ways to go - it has precise write barriers but they are not inlined so performance in scenarios bottlenecked by the cost of assigning object reference to a new heap location will vary a lot depending on WKS vs SRV GC and its configuration + exact CPU model and arch being used (more so than regular code). It does, however, use .NET 7 which is a shame.
This one stresses the GC quite a bit (so it doesn’t make much sense for non-managed languages that can “cheat”), and there is only Haskell as a managed language that could get ahead of Java (but it is not really apples to oranges due to the different execution model), and in other’s case it is not even close.
Go is particularly bad in this benchmark, though it sort of makes sense as it optimizes for low latency, which is fundamentally at odds with throughput.