In these days I'm running some comparative benchmarks and I've got a
bunch of questions related to Java performance on Mac OS X (and/or
possible mistakes I'm doing). In short, the test reads about 160 image
files, extracts metadata and store them into a Derby database (10,000+
records are inserted). The thing is run with 1,2,3 and 4 workers on my
MacBook Pro 1st generation, 2GB RAM, 2GHz (of course, being a dual
core the figures for 3 and 4 workers have little significance). The
code and details on how to reproduce are on my blog:http://weblogs.java.net/blog/fabriziogiudici/archive/2008/04/benchmarks_and_1.html
Even though everything is work in progress and the code has some
residual bugs, the important point is that the very same test runs on
all the platforms on the same hardware (both with the client JIT -
left side of each column pair - and server JIT - right side). There
could be some noise in tests with more than one worker (as a sporadic
bug sometimes prevents 1% of data from getting into the database),
while the test with 1 worker is always consistent.
The first table shows absolute figures (seconds required to process a
single image), the other tables are figures relative to the best
performer (the formula used is: value / best - 1). Probably the most
important table is the last one, where I compare the results for Java
5 VMs (I can't run Apple's Java 6 on my hardware) as Mac OS X is
consistently the worse performer and by a great margin.