Java Performance: Ubuntu Linux vs. Windows Vista
Have you ever wondered on what operating system Java works the best? While by no means is it a conclusive multi-platform comparison, for this article we ran a number of Java benchmarks on both Windows Vista Premium and Ubuntu Linux to see how the Java Virtual Machine performance differs. In addition, when running Ubuntu we had tested Sun's official Java package as well as the OpenJDK alternative.
For this round-up we had used a Dell Inspiron 1525 notebook (PM965 + ICH8M Chipset) with an Intel Core 2 Duo T5800 processor clocked at 2.0GHz, 3GB of DDR2 memory, 250GB Hitachi HTS543225L9A300 HDD, integrated Intel 965 graphics, and a screen resolution of 1280 x 800. On the Windows side we were using Windows Vista Home Premium SP1 while with Ubuntu we were using Ubuntu 8.10 and the stock packages (Linux 2.6.27 kernel, X Server 1.5, etc). Each OS was left to its default settings, including the use of the standard desktop effects.
With Windows Vista Premium we were using Java 1.6.0_07, with the JVM being Java HotSpot VM build 10.0-b23. The official Java build we were using on Linux was Java 1.6.0_10 with the Java HotSpot VM build 11.0-b15. Lastly, with OpenJDK we were using Java 1.6.0_0 with the OpenJDK Server VM build 1.6.0_0-b12. IcedTea 1.3.1 provided the OpenJDK package. These Java versions are the stock versions for what was available with each operating system. For those unfamiliar with OpenJDK, it is Sun's attempt at providing an open-source Java implementation. IcedTea is a Red Hat project that takes OpenJDK and fills in the missing pieces of Java that Sun Microsystems hasn't open-sourced with code from the GNU Classpath.
The Java tests we ran included Sunflow Rendering System, Bork File Encrypter, Java SciMark, and the Java 2D Microbenchmark (j2dbench test profile). All tests were executed through the Phoronix Test Suite, though on Windows Vista they had to be manually run, but we carried out that testing in the same way as the Phoronix Test Suite. With the Java tests we were running the same compiled Java byte-code on both Ubuntu Linux and Windows.