Shortly after Dart2js outperformed hand-written JavaScript, the latest Dart VM now beats JVM 7 64-bit Server, and other versions, in the DeltaBlue benchmark.
Nikolay Botev has ported the DeltaBlue benchmark from Dart to Java and run the benchmark against Dart-22416 (latest stable release) and Dart-22577 (a nightly build), and against several Java client versions, posting the following results on his blog:
The fist column contains the time in us needed to run one iteration of the test while the second column represents the number of runs/sec, being the DeltaBlue score charted above.
We have also run the same tests on a 8-core AMD FX-8350 machine with SSD, but this time against JVM 7 64-bit Server, getting the following average results after 10 runs of each test:
VM | Average Time (us) | Score |
Java HotSpot(TM) 64-Bit Server VM 1.7.0_21 23.21-b01 | 1808.18 | 553.04 |
Dart-22416 | 1885.02 | 530.5 |
Dart-22610 | 1610.48 | 620.93 |
In our test, Dart VM shows 12% better performance than the JVM, which is consistent with Botev's findings.
Greg Lowe posted his results on running DeltaBlue on JVM and Dart VM a couple of months ago, but his benchmark uses Sun’s original DeltaBlue code written in Java which includes a warm-up time:
Lowe’s results show better performance for Dart up to 1,000 iterations of the test, while Java performs better after 10,000 iterations. In the light of Botev’s latest tests, which uses a newer Dart VM, Lowe commented on a Dart group:
I had a quick look at this. It appears the DartVM is now beating the JVM even at 100,000 iterations (Previously Java edged out Dart at higher iterations).
100,000 iterations takes ~45 seconds to run on my computer.
At a lower number of iterations the DartVM beats the JVM by a significant margin.
While we cannot draw final conclusions based on a single benchmark, we can safely say that Google has enhanced Dart VM’s performance to the point where it becomes a serious contender.