Which is funny/sad, as the CLR has more opportunity for perf. For instance, in its generics implementation and value types.
Though the CLR has a lot more "outs", where you can use raw pointers and such. Even put " managed" objects on an unmanaged heap. Don't think this is possible in the JVM. So you can write more C-like code in .net then you can represent in the JVM.