Dave Jarvis
Dave Jarvis

Reputation: 31171

Java bytecode compiler benchmarks

Q.1. What free compiler produces the most optimal Java bytecode?

Q.2. What free virtual machine executes Java bytecode the fastest (on 64-bit multi-core CPUs)?

Q.3. What other (currently active) compiler projects are missing from this list:

Q.4. What performance improvements can compilers do that JITs cannot (or do not)?

Q.5. Where are some recent benchmarks, comparisons, or shoot-outs (for Q1 or Q2)?

Thank you!

Upvotes: 4

Views: 1323

Answers (3)

Stephen C
Stephen C

Reputation: 718798

Q.4. What performance improvements can compilers do that JITs cannot (or do not)?

A JIT compiler can perform global optimizations. A bytecode compiler cannot do this because it cannot see all of the libraries that are loaded during the running of the program.

A JIT compiler can perform branch optimizations based on the observed behavior of the current program execution. A bytecode compiler cannot do this because by the time the program starts running the compiler is already out of the picture.

Upvotes: 2

The only viable alternative to javac at the moment is the Eclipse compiler.

Have a look at it. Question is what you have found to be inefficient and if it really matters.

Upvotes: 0

aioobe
aioobe

Reputation: 420991

Q.1. What free compiler produces the fastest executable Java bytecode?

Question doesn't really make sense. The bytecode is not executed. The compiled bytecode will not be different enough to influence the efficiency of the produced machine code when using a good JIT.

Q.2. What free virtual machine executes Java bytecode the fastest (on 64-bit multi-core CPUs)?

This is a better question. I believe it's JRockit

Q.3. What other (currently active) compiler projects are missing from this list:

I believe you missed out JRockit. But for a more complete list, I'd look at Wikipedia: List of Java Virtual Machines. Looking up whether or not they're active should be an easy task.

Q.4. What performance improvements can compilers do that JITs cannot (or do not)?

Technically none I suppose. The bytecode compilation is basically the wrong place to put the effort when it comes to optimization.

Q.5. Where are some recent benchmarks, comparisons, or shoot-outs (for Q1 or Q2)?

Google is your friend here. These are two:

unfortunately those don't cover that many VMs.

Upvotes: 5

Related Questions