Java speed & native executables

Hi all!

I am developing using Borland JBuilder 7 and are trying out the “Native Executable”-option. For those of you who haven’t used JBuilder, it creates a “bootstrap” (for lack of a better word) native executable for a couple of platforms (Window, Mac, Solaris etc) which just fires up the main program.

My program (which is a Swing app) runs very good when run “normally” and my main panel (with overriden paintComponent(g) ) update takes about 10-20ms. But when i complie it into a native executable the performance drops to 200-300ms per draw!!

I have read up on how the “Native Executable”-builder works and I can’t find a reason why there should be such a huge performance drop. Does anyone have any experience on this or any thoughts on anything that i might have missed that might be causing it?

I just recently got “Java Performance Tuning, 2nd Edition” - Jack Shirazi - O’Reilly and I HIGHLY recommend it for anyone trying to tweak.

It’s the most recent and most complete performance book I’ve read and goes way beyond allot of the speculation you see online and in forums.

It covers native executables as well, and some of the reasons the current VMs are faster in many cases.

My program (which is a Swing app) runs very good when run "normally" and my main panel (with overriden paintComponent(g) ) update takes about 10-20ms. But when i complie it into a native executable the performance drops to 200-300ms per draw!!

Problem is probably due to different JVMs being used for your comparison. You need to check and see which JVM your program is using when run with the bootstrap. The JBuilder bootstrap uses the registry to figure out which JVM to use so dont count on the JAVA_HOME or PATH for this solution.