Interesting info about optimization

I found an interesting site about java optimization. Its called Java Micro Benchmarks. In short it contains comparative benchmarks for the basic java operations. I scaled the results to the time it takes to assign a local int variable. I made this by head so it may be innacurate by 10 or so in the big numbers:

Local assignment:

1 with JIT
25 without JIT

Instance assignment:

2
50

Array assignment:

2
50

Byte/Short/Long incrementation:

2
50

Loop overhead:

2
50

Float/Double incremention:

8
50

Object creation:

400
1200

Array Creation:

400
1200

Method call:

0.5
200

Syncronous Method call:

200
4000

Inline code:

4
25

Math functions:

4
200

These results are very interesting for creating games. One thing it says is that we should avoid creation objects in the middle of the game. Another is that we should avoid it even more to free them.

Probably the worst case is when the gc has to free an entire BranchGroup with everything linked together. This must give a lot of work to the gc trying scan the tree to see if it can be free or not.

Another point is on how JIT is essential. I heard that the IBM jvm is the best but what is the best jvm for making games. Any idea ?

I know that some JITs actualy replace some Math instructions by equivalent pre-compiled machine code. This would be a great help if the JIT could also extend the matrix math in java.vecmath and the graphics operation in java2d that work with textures.

Then maybe we could have java3d competing with C engines.