The Java VM is an impressive beast. In theory, features like dynamic optimization and compilation and concurrent garbage collection promise great performance gains. But in benchmarks at the Computer Language Shootout, performance numbers still appear to be lacking.
The Computer Language Shootout is good research. Complete disclosure of methods (for maximum reproducibility), an adversarial method for developing implementations and the breadth of language and compiler coverage all make for a solid data set. However I began to wonder about the fact that for each benchmark results are only published for one set of inputs. Update: As Isaac Gouy points out, there are actually three results reported, see comments below. For example for the
binarytree benchmark, only one tree-depth is used, specifically 16. This value may be an arbitrary choice, it may be chosen to keep the runtimes in some range, regardless, there is only one.