C# is a major pain from a perf standpoint. Every object contains a pointer to its type. Garbage collection is mandatory for all so-called "managed" data. Last time I saw GC'able heap allocation during the render loop in MonoGame when using the VS Ultimate profiler.
JVM is nice because it can run Scala.