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 JIT25 without JIT

Instance assignment:

250

Array assignment:

250

Byte/Short/Long incrementation:

250

Loop overhead:

250

Float/Double incremention:

850

Object creation:

4001200

Array Creation:

4001200

Method call:

0.5200

Syncronous Method call:

2004000

Inline code:

425

Math functions:

4200

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.

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org