Taking a step back, most folks really shouldn’t care about the speed difference between C/C++ and Java. They’re smallish linear differences say between 4-20x. And most people will only see the bottom end of that range because they aren’t going to be taking advantage of SIMD and cache oblivious methods (to name a couple). And more to the point most people don’t need to push tons of computations. And since the speed difference is linear, algorithmic improvement is much more important than the choice of language. Likewise moving away from single threaded to multi-threaded should give a nice additional linear boost. Now of course the same changes could be applied to a C/C++ version as well, so it boils down to your point: which language (or some other choice) can you to get the job done in the least amount of engineering time (and to spec)? Choose that language and run with it.
What am I referring to is simple. I only benchmark very expensive computations and C/C++ exposes a closer to the metal feature set which allow for very significant performance gains. We’ve covered what Java’s (actually the JVM) missing to allow to help close the gap pretty much ad nauseam. Sometimes some programming trickery (a la Riven’s structure library) can help, but mostly we’re SOL until some features are added to the JVM.
Not serious mode: Java? compact? And you said that with a straight face?