War of the VMs
Java SE Embedded Vs. Android 2.2
Oracle's Bob Vandette has written about his experiment pitting Android against Java SE Embedded.
He gives a brief overview of the Android story so far, claiming that because the Dalvik Virtual Machine previously only ran interpreted, its Java execution speed was "substantially slower than most Java runtimes available on the web." However, with the release of Android 2.2 and the JIT compiler, the community have been reporting increased execution speeds, and Vandette now views Android as entering "the ballpark of other mature VMs." His reaction to this? "I thought it would be fun to see how well it stacks up against our own Java SE Embedded Hotspot Virtual Machine."
There were numerous obstacles standing in his way. Firstly, the Dalvik processes dex files instead of executing Java class files; Android and Java SE's Graphical Interface APIs are at odds with one another, which meant he couldn't run any GUI based benchmarks; and Java SE doesn't support Android's version of Linux. Vandette overcame these problems by configuring his test hardware platforms to run both Android and a standard Linux distribution, selecting benchmarks that didn't require GUI APIs, and converting these benchmarks to the dex format for the runs on Android. And the results? Vandette reports that Android 2.2 lags behind the performance of Java SE Embedded, with a highest recorded difference of 3.2x.